警告 C6514

无效的批注: 'name' 属性的值超出了数组的大小

注解

此警告指示属性值超出了要批注的参数中指定的数组大小。 为批注属性指定的值大于要传递的数组的实际长度时,会发出此警告。

代码分析名称:BUFFER_SIZE_EXCEEDS_ARRAY_SIZE

示例

以下代码生成此警告,因为数组的大小为 6,但 ValidElementsConst 属性值为 8:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f( [SA_Pre(Deref=1, ValidElementsConst=8)] char(*matrix) [6] );

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f( [Pre(Deref=1, ValidElementsConst=8)] char(*matrix) [6] );

若要更正此警告,请确保 ValidElementsConst 中指定的大小小于或等于数组的大小,如以下示例代码所示:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f( [SA_Pre(Deref=1, ValidElementsConst=6)] char(*matrix) [6] );

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f( [Pre(Deref=1, ValidElementsConst=6)] char(*matrix) [6] );