malloc
和 calloc
是C语言中用于动态内存分配的两个函数。它们允许程序在运行时根据需要分配内存,而不是在编译时确定所有内存需求。
void* malloc(size_t size);
。如果分配成功,它返回指向新分配内存的指针,否则返回NULL。void* calloc(size_t num, size_t size);
。它分配足够的内存来存储 num
个大小为 size
的元素,并将所有字节初始化为零。malloc
分配单个连续的内存块。calloc
分配并初始化一个数组。malloc
或 calloc
调用与 free
调用。malloc
或 calloc
后都有对应的 free
调用。#include <stdio.h>
#include <stdlib.h>
int main() {
int n = 10;
int *arr;
// 使用 calloc 分配并初始化数组
arr = (int*)calloc(n, sizeof(int));
if (arr == NULL) {
fprintf(stderr, "内存分配失败\n");
return 1;
}
// 使用数组
for (int i = 0; i < n; i++) {
arr[i] = i * 2;
printf("%d ", arr[i]);
}
printf("\n");
// 释放内存
free(arr);
return 0;
}
在这个示例中,我们使用 calloc
分配了一个整数数组,并在使用完毕后释放了内存。这是一个良好的内存管理实践,可以避免内存泄漏和其他相关问题。
领取专属 10元无门槛券
手把手带您无忧上云