Realloc () Fungsi di C Library: Bagaimana cara menggunakannya? Belajar dengan Teladan

Daftar Isi:

Anonim

Apa itu realloc ()?

realloc () adalah fungsi pustaka C 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 tersebut, penunjuk 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 region baru. Itu memastikan bahwa data akan tetap aman.

Sebagai contoh:

#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;} 

Cara menggunakan realloc ()

Program di bawah ini di C mendemonstrasikan bagaimana menggunakan realloc di C untuk mengalokasikan kembali 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;}

Hasil realoc di contoh C:

Memory created successfully

Kapanpun realoc menghasilkan operasi yang tidak berhasil, itu mengembalikan pointer nol, dan data sebelumnya juga dibebaskan.