Compartir a través de


C6526

Actualización: noviembre 2007

C6526

Advertencia C6526: Especificación de tamaño no válida: la expresión debe ser de tipo de puntero o de matriz

Esta advertencia indica que se utiliza un tipo de datos incorrecto para especificar un valor de la propiedad. Una propiedad puede admitir todos los tipos de datos o sólo un subconjunto de ellos. En este caso, el valor especificado para la propiedad debe ser de tipo de matriz o de puntero. Para obtener una lista de las propiedades de anotación, vea Propiedades de anotación.

Ejemplo

El código siguiente genera esta advertencia porque el valor para WritableElementsLenght se debe especificar utilizando un tipo de matriz o de puntero:

// 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 corregir esta advertencia, el código siguiente establece el valor de WritableElementsLength en un tipo de puntero. Al especificar un tipo de matriz o de puntero, se indica que la longitud de char *ps es la misma que la 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);