C6011
uyarı C6011: NULL işaretçisi başvurusunu kaldırma <name>
Bu uyarı, bir null işaretçisinin başvurusunun yapıldığını gösterir.İşaretçi değeri geçersizse, sonuç tanımsızdır.
Örnek
Aşağıdaki kod bu uyarıyı oluşturur, çünkü eğer yetersiz hafıza varsa malloc'a bir çağrı NULL döndürebilir:
#include <malloc.h>
void f( )
{
char *p = ( char * ) malloc( 10 );
*p = '\0';
// code ...
free( p );
}
Bu uyarı düzeltmek için aşağıdaki kodda gösterildiği gibi işaretçi null değerini inceleyin:
#include <malloc.h>
void f( )
{
char *p = ( char * )malloc ( 10 );
if ( p )
{
*p = '\0';
// code ...
free( p );
}
}
Null özelliklerini önceki durum içerisinde parametreyi referanstan ayıran parametreleri kullanarak açıklamalı olan, işlevin içinden hafıza ayırmalısınız.Aşağıdaki kod C6011 uyarısını oluşturur, çünkü bir girişim hafızadan ilk tahsisten önce fonksiyonun içindeki null işaretçisinin referansını alır (pc):
#include <codeanalysis\sourceannotations.h>
using namespace vc_attributes;
void f([Pre(Null=Yes)] char* pc)
{
*pc='\0'; // warning C6011 - pc is null
// code ...
}
Ayrıca bkz.
Başvuru
Kavramlar
Gerekebilen ve adresi, işleçleri