Apakah realloc ()?
realloc () adalah fungsi perpustakaan C untuk menambahkan lebih banyak ukuran memori ke blok memori yang telah diperuntukkan. Tujuan pemasangan semula dalam C adalah untuk memperluas blok memori semasa sambil meninggalkan kandungan asalnya sebagaimana adanya. fungsi realloc () membantu mengurangkan ukuran memori yang diperuntukkan sebelumnya oleh fungsi malloc atau calloc. realloc bermaksud pengagihan semula memori.
Sintaks untuk pembahagian semula dalam C
ptr = realloc (ptr,newsize);
Pernyataan di atas memperuntukkan ruang memori baru dengan ukuran yang ditentukan dalam pembolehubah berita. Setelah menjalankan fungsi, penunjuk akan dikembalikan ke bait pertama blok memori. Saiz baru boleh lebih besar atau lebih kecil daripada memori sebelumnya. Kami tidak pasti bahawa jika blok yang baru diperuntukkan akan menunjuk ke lokasi yang sama dengan blok memori sebelumnya. Fungsi realloc di C akan menyalin semua data sebelumnya di wilayah baru. Ini memastikan bahawa data akan tetap selamat.
Sebagai contoh:
#includeint 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;}
Cara menggunakan realloc ()
Program di bawah di C menunjukkan cara menggunakan realloc di C untuk mengagihkan semula memori.
#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;}
Keputusan realokasi dalam contoh C:
Memory created successfully
Setiap kali realloc menghasilkan operasi yang tidak berjaya, ia mengembalikan penunjuk nol, dan data sebelumnya juga dibebaskan.