Aracılığıyla paylaş


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

NULL (CRT)

malloc

free

Kavramlar

Gerekebilen ve adresi, işleçleri

Diğer Kaynaklar

Ek açıklama genel bakış

Null