C 标准库 - <stdlib.h>

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。