C6011
Aviso C6011: ponteiro NULL apontar <name>
Este aviso indica que um ponteiro nulo referência está sendo cancelado.Se o valor do ponteiro for inválido, o resultado é indefinido.
Exemplo
O código a seguir gera este aviso porque uma chamada para malloc pode retornar nula se não há memória suficiente disponível:
#include <malloc.h>
void f( )
{
char *p = ( char * ) malloc( 10 );
*p = '\0';
// code ...
free( p );
}
Para corrigir esse aviso, examine o ponteiro para o valor nulo, conforme mostrado no código a seguir:
#include <malloc.h>
void f( )
{
char *p = ( char * )malloc ( 10 );
if ( p )
{
*p = '\0';
// code ...
free( p );
}
}
Você deve alocar memória dentro da função cujos parâmetros são anotados usando-se a propriedade nulo em uma pré-condição antes de cancelar a referência do parâmetro.O código a seguir gera a C6011 de aviso porque uma tentativa é feita a referência a um ponteiro nulo (pc) dentro da função sem memória alocando primeira:
#include <codeanalysis\sourceannotations.h>
using namespace vc_attributes;
void f([Pre(Null=Yes)] char* pc)
{
*pc='\0'; // warning C6011 - pc is null
// code ...
}
Consulte também
Referência
Conceitos
Indireção e operadores de endereço