C语⾔还提供了⼀个函数叫 calloc , calloc 函数也⽤来动态内存分配
和realloc是有区别的
realloc在c语言练习63中有所应用,realloc是为了扩大内存空间
下面为calloc和recalloc的例子代码:
- #include
- #include
- 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;
- }
补充: