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

  • Chaoticmoogle

    Chaoticmoogl

    13 ŞUBAT 2006
  • karneson

    karneson

    23 Temmuz 2006
  • movies95

    movies95

    27 Kasım 2006