Rumah >pembangunan bahagian belakang >C++ >Dalam bahasa C, apakah maksud Realloc?
Fungsi peruntukan memori pustaka C void *realloc(void *ptr, size_t size) cuba mengubah saiz blok memori yang ditunjuk oleh ptr yang sebelum ini diperuntukkan menggunakan panggilan malloc atau calloc.
Memori boleh diperuntukkan dalam dua cara:
Setelah memori diperuntukkan pada masa penyusunan, ia tidak boleh ditukar semasa pelaksanaan. Sama ada ingatan tidak mencukupi, atau ia membazir ingatan.
Penyelesaian adalah untuk mencipta memori secara dinamik, iaitu berdasarkan keperluan program semasa pelaksanaan.
Fungsi perpustakaan standard untuk pengurusan memori dinamik adalah seperti berikut:
Free void *realloc (pointer, newsize);
Contoh
int *ptr; ptr = (int * ) malloc (1000);// we can use calloc also - - - - - - - - - ptr = (int * ) realloc (ptr, 500); - - - - - - ptr = (int * ) realloc (ptr, 1500);
Contoh
Berikut ialah program C menggunakan fungsi realloc():
#include<stdio.h> #include<stdlib.h> int main(){ int *ptr, i, num; printf("array size is 5</p><p>"); ptr = (int*)calloc(5, sizeof(int)); if(ptr==NULL){ printf("Memory allocation failed"); exit(1); // exit the program } for(i = 0; i < 5; i++){ printf("enter number at %d: ", i); scanf("%d", ptr+i); } printf("</p><p>Let's increase the array size to 7</p><p> "); ptr = (int*)realloc(ptr, 7 * sizeof(int)); if(ptr==NULL){ printf("Memory allocation failed"); exit(1); // exit the program } printf("</p><p> enter 2 more integers</p><p></p><p>"); for(i = 5; i < 7; i++){ printf("Enter element number at %d: ", i); scanf("%d", ptr+i); } printf("</p><p> result array is: </p><p></p><p>"); for(i = 0; i < 7; i++){ printf("%d ", *(ptr+i) ); } return 0; }
Output
Apabila program di atas dilaksanakan, ia menghasilkan keputusan berikut ∜reee🎜Atas ialah kandungan terperinci Dalam bahasa C, apakah maksud Realloc?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!