C Kitaplığındaki realloc () Fonksiyonu: Nasıl Kullanılır? Örneklerle Öğrenin

İçindekiler:

Anonim

Realloc () nedir?

realloc () , önceden ayrılmış bellek bloklarına daha fazla bellek boyutu eklemek için C kitaplığının bir işlevidir. C'de yeniden tahsis etmenin amacı, orijinal içeriği olduğu gibi bırakırken mevcut bellek bloklarını genişletmektir. realloc () işlevi, malloc veya calloc işlevleriyle önceden ayrılmış belleğin boyutunu azaltmaya yardımcı olur. realloc, belleğin yeniden tahsis edilmesi anlamına gelir.

C'de yeniden tahsis için sözdizimi

ptr = realloc (ptr,newsize);

Yukarıdaki ifade, newsize değişkeninde belirli bir boyutta yeni bir bellek alanı ayırır. Fonksiyonu çalıştırdıktan sonra, işaretçi bellek bloğunun ilk baytına geri dönecektir. Yeni boyut, önceki bellekten daha büyük veya daha küçük olabilir. Yeni tahsis edilen bloğun önceki bellek bloğu ile aynı konuma işaret edip etmeyeceğinden emin olamayız. C'deki yeniden tahsis işlevi, yeni bölgedeki tüm önceki verileri kopyalayacaktır. Verilerin güvende kalmasını sağlar.

Örneğin:

#include int main () {char *ptr;ptr = (char *) malloc(10);strcpy(ptr, "Programming");printf(" %s, Address = %u\n", ptr, ptr);ptr = (char *) realloc(ptr, 20); //ptr is reallocated with new sizestrcat(ptr, " In 'C'");printf(" %s, Address = %u\n", ptr, ptr);free(ptr);return 0;} 

Realloc () nasıl kullanılır

Aşağıdaki C programı, hafızayı yeniden tahsis etmek için C de realloc'un nasıl kullanılacağını gösterir.

#include #include int main() {int i, * ptr, sum = 0;ptr = malloc(100);if (ptr == NULL) {printf("Error! memory not allocated.");exit(0);}ptr = realloc(ptr,500);if(ptr != NULL)printf("Memory created successfully\n");return 0;}

C örneğindeki yeniden tahsisin sonucu:

Memory created successfully

Yeniden tahsis başarısız bir işlemle sonuçlandığında, boş bir işaretçi döndürür ve önceki veriler de serbest bırakılır.