Поделиться через


C6526

Предупреждение C6526: неверно указан размер. Требуется выражение типа указателя или массива.

Это предупреждение означает, что для определения значения свойства используется неверный тип данных. Свойство может поддерживать либо все типы данных, либо лишь некоторые типы. В данном случае значение свойства должно быть либо типа указателя, либо типа массива. Полный список свойств аннотации см. в разделе Свойства заметок.

Пример

Это предупреждение возникает в следующем коде, поскольку значение свойства WritableElementsLenght должно быть указано с помощью типа данных массива или указателя:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f ([SA_Pre(WritableElementsLength="count")] char *ps, size_t count);

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f ([Pre(WritableElementsLength="count")] char *ps, size_t count);

Чтобы устранить это предупреждение, установите значение свойства WritableELementsLength с помощью типа массива, как показано в следующем коде. Если задать тип данных "массив" или "указатель", это будет свидетельствовать о том, что длина char *ps равна длине char*pt.

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f ([SA_Pre(WritableElementsLength="pt")] char *ps, char *pt);

// C++  
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f ([Pre(WritableElementsLength="pt")] char *ps, char *pt);