SORU
18 EYLÜL 2015, Cuma


Kitabı neden malloc dökme söylemem gerekir mi?

Bugün sayfa ulaştım167The C Programming Language (second edition Brian W. Kernighan & Dennis M. Ritchie) yazar malloc dökme etmem gerektiğini söylüyor bulundu. Burada kitaptan bir bölüm:

7.8.5 Depolama Yönetimi

Fonksiyonlar ve Dinamik Bellek blokları malloc calloc edinin.

void *malloc(size_t n)

eğer bu isteği yerine olamaz eğer n bir işaretçi başlatılmamış depolama bayt döndürür.

void *calloc(size_t n, size_t size)

döndürür, belirtilen boyutu n nesneleri bir dizi için yeterli boş alan için bir işaretçi veya NULL isteği tatmin edemez. Depolama sıfıra başlatıldı. Bu malloc veya calloc ile iade söz konusu nesne için uygun bir uyum vardır ama uygun bir tür içine dönüştürmelisiniz

int *ip;
ip = (int *) calloc(n, sizeof(int));

Ben zaten malloc (ve ailesine) türü döndürür* geçersizve there are good explanations why not to cast malloc.

Ama sorum şu: Neden kitap koyun demeliyim?

CEVAP
18 EYLÜL 2015, Cuma


http://computer-programming-forum.com/47-c-language/a9c4a586c7dcd3fe.htm:

Pre-ANSI C K açıklanan&R-1 -- -- malloc () char *döndü ve her durumda dönüş değeri atama için gerekliydi değişken de Alma char * değildi. void * yeni tip Standart C bu bükülmeler gereksiz kılıyor.

Gereksiz yere sıçrayan utanç birini kurtarmak için K savunma&R-2, sordum Dennis Ritchie verebilecek bir görüş için cümlenin geçerliliğini alıntı sayfa 142 yukarıda gösterdi. O cevap verdi:

Her durumda, artık o p hakkında bir yazı okudum. 142, bence yanlış; sadece savunma değil böyle bir şekilde yazılmış daha önce kurallara aykırı, ANSI kurallarını tanıtır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • eHow

    eHow

    27 NİSAN 2006
  • Vagrant Records

    Vagrant Reco

    8 Mayıs 2006
  • Wronchi Animation

    Wronchi Anim

    9 Mayıs 2011