Condividi tramite


C6535

Aggiornamento: novembre 2007

C6535

avviso C6535: il buffer non può avere la dimensione <n>, superiore a max(size_t)

Questo avviso indica che la dimensione del buffer non può essere superiore a size_t. Il tipo size_t viene definito come integer senza segno e l'effettiva dimensione dipende dal sistema.

Esempio

Nell'esempio di codice seguente viene generato questo avviso perché __int64 è utilizzato per ValidBytes che può accettare solo il tipo size_t:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f ([SA_Pre(ValidBytes="c")] char *pc, __int64 c);

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

Per risolvere il problema, utilizzare il tipo di dati corretto per la dimensione, come illustrato nell'esempio di codice seguente:

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

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

Non è possibile applicare la proprietà ValidBytes a un puntatore a una funzione.