C6521
Aviso C6521: especificação de dimensionar inválido: * operador somente pode ser aplicado a tipos de ponteiro
Este aviso indica um uso incorreto do * operador em uma propriedade de anotação que aceita o dimensionar de um parâmetro em termos de outro parâmetro.Esse aviso é gerado se o parâmetro dimensionar é um tipo ponteiro não e um * operador é usado para cancelar a referência-lo.No entanto, você pode usar o * operador se o parâmetro dimensionar é passado sistema autônomo o tipo de ponteiro.
Exemplo
O código a seguir gera este aviso:
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f ([SA_Pre(WritableElements="*c")] char *pc, size_t c);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f ([Pre(WritableElements="*c")] char *pc, size_t c);
Para corrigir esse aviso, excluir o * operador do valor da propriedade WritableElements ou passar um ponteiro para size_t.O código a seguir usa size_t * c:
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f ([SA_Pre(WritableElements="*c")] char *pc, size_t *c);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f ([Pre(WritableElements="*c")] char *pc, size_t *c);