Compartilhar via


C6535

Aviso C6535: buffer não pode ser de tamanho <n> maior que max(size_t)

Este aviso indica que o tamanho do buffer não pode ser mais de size_t. O tipo de size_t é definido como um inteiro sem sinal e o real tamanho é dependente do sistema.

Exemplo

O exemplo de código a seguir gera este aviso porque _ _int64 é usado para ValidBytes que só pode aceitar size_t tipo:

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

Para corrigir esse aviso, use o tipo de dados corretos para o tamanho, conforme mostrado no exemplo de código seguir:

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

A propriedade de ValidBytes não pode ser aplicada a um ponteiro de função.