无效的批注: '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] );