realloc() Fungsi di C Library:Bagaimana cara menggunakannya? Sintaks &Contoh
Apa itu realloc()?
relokasi() adalah fungsi dari C library untuk menambahkan lebih banyak ukuran memori ke blok memori yang sudah dialokasikan. Tujuan realokasi di C adalah untuk memperluas blok memori saat ini sambil membiarkan konten asli apa adanya. fungsi realloc() membantu mengurangi ukuran memori yang dialokasikan sebelumnya dengan fungsi malloc atau calloc. realloc adalah singkatan dari realokasi memori.
Sintaks untuk realokasi di C
ptr = realloc (ptr,newsize);
Pernyataan di atas mengalokasikan ruang memori baru dengan ukuran tertentu dalam variabel ukuran baru. Setelah menjalankan fungsi, pointer akan dikembalikan ke byte pertama dari blok memori. Ukuran baru bisa lebih besar atau lebih kecil dari memori sebelumnya. Kami tidak dapat memastikan apakah blok yang baru dialokasikan akan menunjuk ke lokasi yang sama dengan blok memori sebelumnya. Fungsi realoc di C akan menyalin semua data sebelumnya di wilayah baru. Itu memastikan bahwa data akan tetap aman.
Misalnya:
#include <stdio.h>
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 size
strcat(ptr, " In 'C'");
printf(" %s, Address = %u\n", ptr, ptr);
free(ptr);
return 0;
}
Cara menggunakan realloc()
Program di C di bawah ini menunjukkan cara menggunakan realoc di C untuk mengalokasikan kembali memori.
#include <stdio.h>
#include <stdlib.h>
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;
}
Hasil realoc pada contoh C:
Memory created successfully
Setiap kali realokasi menghasilkan operasi yang gagal, ia mengembalikan pointer nol, dan data sebelumnya juga dibebaskan.