C6526

C6526 - especificação de tamanho inválido de aviso: a expressão deve ser do tipo matriz ou de ponteiro

Este aviso indica que um tipo de dados incorretos é usado para especificar um valor de propriedade. Uma propriedade pode oferecer suporte a todos os tipos de dados ou um subconjunto deles. Nesse caso, o valor especificado para a propriedade deve ser uma matriz ou um tipo de ponteiro. Para obter uma lista das propriedades de anotação, consulte Propriedades de anotação.

Exemplo

O código a seguir gera este aviso porque o valor de WritableElementsLenght deve ser especificado usando uma matriz ou um tipo de ponteiro:

// 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);

Para corrigir esse aviso, o código a seguir define o valor de WritableELementsLength a um tipo de ponteiro. Especificando uma matriz ou um tipo de ponteiro, você está indicando que o comprimento de char * ps é o mesmo que o comprimento de 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);