realloc() Fungsi di Perpustakaan C: Bagaimana cara menggunakannya? Sintaks & Contoh
Apa itu realloc()?
alokasi ulang() adalah fungsi perpustakaan C untuk menambahkan lebih banyak ukuran memori ke blok memori yang sudah dialokasikan. Tujuan dari realokasi di C adalah untuk memperluas blok memori saat ini sambil membiarkan konten aslinya apa adanya. fungsi realloc() membantu mengurangi ukuran memori yang dialokasikan sebelumnya oleh fungsi malloc atau calloc. realloc adalah singkatan dari realokasi memori.
Sintaks untuk alokasi ulang di C
ptr = realloc (ptr,newsize);
Pernyataan di atas mengalokasikan ruang memori baru dengan ukuran tertentu dalam variabel newsize. Setelah mengeksekusi fungsi, penunjuk akan dikembalikan ke byte pertama blok memori. Ukuran barunya 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 realloc di C akan menyalin semua data sebelumnya di wilayah baru. Ini memastikan bahwa data akan tetap aman.
Sebagai contoh:
#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 bawah dalam C menunjukkan cara menggunakan realloc 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 pengalokasian ulang menghasilkan operasi yang gagal, ia mengembalikan a pointer nol, dan data sebelumnya juga dibebaskan.