23 Eylül 2020 Çarşamba

calloc metodu

Giriş
Şu satırı dahil ederiz
#include <stdlib.h>
calloc standart C metodudur. Açıklaması şöyle.
The calloc() function allocates memory for an array of nmemb elements of size bytes each and returns a pointer to the allocated memory. The memory is set to zero. If nmemb or size is 0, then calloc() returns either NULL, or a unique pointer value that can later be successfully passed to free().
calloc Kullanmak Neden İyi?
Açıklaması şöyle. Kirli bir bellek alanı alma ihtimaline karşı kullanılıyor.
Because after you've used the space and released it with free(), it might be allocated again. If you don't use calloc(), there's no guarantee that the memory will be zeroed on the second time it is used. (Calling free() does not zero the space.)
İmzası
Metodun imzası şöyle. Verilen  blok büyüklüğünden n tane yaratır
 void *calloc(size_t nmemb, size_t size);`
Örnek
İlk parametre size_t tipinde olduğu için teorik olarak en fazla SIZE_MAX büyüklüğnde değer alabilir. Şöyle yaparız.
calloc(SIZE_MAX, 2) != NULL;
Diğer
Metodun başındaki c harfi muhtemelen "clear" anlamına geliyor. Malloc ile aynıdır, sadece sıfır ile doldurulmuş bir hafıza döndürüyor. Yani şu kod her zaman true döner.
int* ptr = calloc(sizeof (*ptr));
bool b = *ptr == 0;  // always true
Aynı şeyi malloc ile yapmak isteseydik şöyle yapardık.
char* buffer = (char*)malloc(100);
memset(buffer,0,100);

Hiç yorum yok:

Yorum Gönder