Hàm realloc được sử dụng để thay đổi kích thước khối bộ nhớ được cấp phát bởi malloc hoặc calloc trước đó.
Đây là cú pháp của realloc trong ngôn ngữ C,
void *realloc(void *pointer, size_t size)
Đây,
con trỏ - Con trỏ trỏ đến khối bộ nhớ được cấp phát trước đó bởi malloc hoặc calloc.
kích thước - Kích thước mới của khối bộ nhớ.
Đây là một ví dụ về realloc () trong ngôn ngữ C,
Ví dụ
#include <stdio.h> #include <stdlib.h> int main() { int n = 4, i, *p, s = 0; p = (int*) calloc(n, sizeof(int)); if(p == NULL) { printf("\nError! memory not allocated."); exit(0); } printf("\nEnter elements of array : "); for(i = 0; i < n; ++i) { scanf("%d", p + i); s += *(p + i); } printf("\nSum : %d", s); p = (int*) realloc(p, 6); printf("\nEnter elements of array : "); for(i = 0; i < n; ++i) { scanf("%d", p + i); s += *(p + i); } printf("\nSum : %d", s); return 0; }
Đầu ra
Enter elements of array : 3 34 28 8 Sum : 73 Enter elements of array : 3 28 33 8 10 15 Sum : 145
Trong chương trình trên, Khối bộ nhớ được cấp phát bởi calloc () và tổng các phần tử được tính toán. Sau đó, realloc () đang thay đổi kích thước khối bộ nhớ từ 4 thành 6 và tính tổng của chúng.
p = (int*) realloc(p, 6); printf("\nEnter elements of array : "); for(i = 0; i < n; ++i) { scanf("%d", p + i); s += *(p + i); }