C 语言 calloc() 函数用于分配内存并自动清零,比 malloc 更适合需要初始化为 0 的数组。
原型
void *calloc(size_t num, size_t size);分配 num 个 size 字节的元素,共 num*size 字节,并把所有位清零。失败返回 NULL。
参数
num- 元素个数;size- 每个元素占用的字节数。
示例
#include <stdio.h>
#include <stdlib.h>
int main() {
int *arr = (int *)calloc(5, sizeof(int));
if (arr == NULL) { printf("分配失败\n"); return 1; }
for (int i = 0; i < 5; i++) printf("%d ", arr[i]);
printf("\n");
free(arr);
return 0;
}输出:
0 0 0 0 0注意事项
calloc 清零性能略低于 malloc+memset,但更安全;同样需要 free。