C6011
Обновлен: Ноябрь 2007
C6011
Предупреждение C6011: разыменование указателя NULL <имя>.
Это предупреждение указывает на разыменование указателя null. Если значение указателя недопустимо, результат становится неопределенным.
Пример
Это предупреждение возникает в следующем коде, поскольку вызов malloc может вернуть значение null, если недостаточно памяти:
#include <malloc.h>
void f( )
{
char *p = ( char * ) malloc( 10 );
*p = '\0';
// code ...
free( p );
}
Чтобы устранить это предупреждение, проверьте указатель на предмет значений null, как показано в следующем коде:
#include <malloc.h>
void f( )
{
char *p = ( char * )malloc ( 10 );
if ( p )
{
*p = '\0';
// code ...
free( p );
}
}
Перед разыменованием параметра нужно выделить память внутри функции, для аннотации которых используется свойство Null в условии Pre. В следующем коде предупреждение C6011 возникает из-за попытки разыменования указателя null (pc) внутри функции без предварительного выделения памяти:
#include <codeanalysis\sourceannotations.h>
using namespace vc_attributes;
void f([Pre(Null=Yes)] char* pc)
{
*pc='\0'; // warning C6011 - pc is null
// code ...
}
См. также
Основные понятия
Indirection and Address-of Operators