calloc和realloc
C语⾔还提供了⼀个函数叫 calloc , calloc 函数++也++⽤来动态内存分配
和realloc是有区别的
练习使用calloc和realloc
realloc在c语言练习63中有所应用,realloc是为了扩大内存空间
下面为calloc和recalloc的例子代码:
cpp
#include<stdio.h>
#include<stdlib.h>
int main() {
int* p = (int*)malloc(5 * sizeof(int));
if (p == NULL) {
perror(malloc);
return 1;
}
int i = 0;
for (i = 0; i < 5; i++) {
*(p + i) = i + 1;
}
/*for (i = 0; i < 5; i++) {
printf("%d ", (*p + i));
}*/
//调整申请的堆上内存
int*ptr=(int*)realloc(p, 40);
if (ptr != NULL) {
p = ptr;
ptr = NULL;
}
else {
perror(realloc);
return 1;
}
//使用
for (i = 0; i < 10; i++) {
printf("%d\n", *(p + i));
}
free(p);
p = NULL;
return 0;
}
补充: