C 库中的 calloc() 函数及程序示例
C 语言中的 calloc 是什么?
C 语言中的 **calloc()** 是一个用于分配相同大小的多个内存块的函数。它是一个动态内存分配函数,为数组和结构体等复杂数据结构分配内存空间,并返回指向内存的 void 指针。Calloc 代表连续分配。
malloc 函数用于分配单个内存块,而 C 语言中的 calloc 函数用于分配多个内存块。calloc 在 C 编程中分配的每个块的大小都相同。
calloc() 语法
ptr = (cast_type *) calloc (n, size);
- 上述 C 语言 calloc 语句示例用于分配 n 个相同大小的内存块。
- 内存空间分配后,所有字节都会被初始化为零。
- 返回指向已分配内存空间第一个字节的指针。
当发生内存分配错误(如内存不足)时,会返回一个空指针,如下面的 calloc 示例所示。
如何使用 calloc
下面的 C 语言 calloc 程序计算算术序列的和。
#include <stdio.h> int main() { int i, * ptr, sum = 0; ptr = calloc(10, sizeof(int)); if (ptr == NULL) { printf("Error! memory not allocated."); exit(0); } printf("Building and calculating the sequence sum of the first 10 terms \ n "); for (i = 0; i < 10; ++i) { * (ptr + i) = i; sum += * (ptr + i); } printf("Sum = %d", sum); free(ptr); return 0; }
C 语言 calloc 示例结果
Building and calculating the sequence sum of the first 10 terms Sum = 45