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