SORU
22 HAZİRAN 2009, PAZARTESİ


Özgür sonra BOŞ değişken

Benim şirket, herhangi bir bellek boşaltma sonra, NULL değişkeni Sıfırla diyor bu kodlama bir kural yoktur. Örnek ...

void some_func () 
{
    int *nPtr;

    nPtr = malloc (100);

    free (nPtr);
    nPtr = NULL;

    return;
}

Kod yukarıda gösterildiği gibi durumlarda, BOŞ ayarı için hiç bir anlam ifade etmiyor. ben böyle düşünüyorum. Ya da ben bir şey eksik?

Eğer bu gibi durumlarda anlam ise orada hayır, "kalite" bu kodlama kuralı. kaldırmak için takım almaya gidiyorum Tavsiye lütfen.

CEVAP
22 HAZİRAN 2009, PAZARTESİ


Kullanılmayan işaretçiler NULL ayar bir defans stili, sarkan işaretçi böceklere karşı koruyor. Eğer sarkan bir işaretçi serbest kaldığında erişilen, ya da rastgele bellek okuma üzerine yazabilir. Eğer bir null işaretçi erişim sağlanırsa, hatanın ne olduğunu çoğu sistemde ani bir kaza, hemen söylüyorum.

Yerel değişkenler olabilir biraz anlamsız olur "bariz" işaretçi değil mi erişilen artık sonra serbest, bu yüzden bu tarz daha uygun İçin Üye verileri ve global değişkenler. Hatta yerel değişkenler için, eğer işlevi bellek serbest bırakılır sonra da devam ederse iyi bir yaklaşım olabilir.

Stili tamamlamak için, aynı zamanda doğru işaretçiler işaretçi bir değer atanmadan önce BOŞ başlatılamıyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Adam Outler

    Adam Outler

    19 EKİM 2006
  • CMTelly

    CMTelly

    2 Mayıs 2007
  • Propaganda Time

    Propaganda T

    19 EYLÜL 2010