malloc() 函数 和 calloc() 函数
在 Linux 中,我们可以使用一些系统调用来分配内存,其中最常用的是 malloc() 和 calloc() 函数。这些函数都属于 C 标准库,可以在包含 <stdlib.h> 头文件的程序中使用。在本文中,我们将讨论如何使用这些函数来分配内存。
malloc() 函数
malloc() 函数用于在堆上分配一块指定大小的内存,它接受一个整数参数,表示要分配的内存块的大小,返回一个指向该内存块的指针。如果分配失败,返回 NULL。
int* arr = (int*) malloc(10 * sizeof(int));
这将分配一个能够容纳 10 个整数的内存块,并返回一个指向该内存块的指针。在使用完内存块后,我们需要使用 free() 函数将其释放,以便系统可以重新利用该内存。
free(arr);
calloc() 函数
calloc() 函数也用于在堆上分配内存,但它与 malloc() 函数的不同之处在于,calloc() 函数会在分配内存后将其初始化为零。该函数接受两个参数,第一个参数表示要分配的内存块的数量,第二个参数表示每个内存块的大小,返回一个指向该内存块的指针。
例如,要分配一个包含 10 个整数的数组,并将其初始化为零,可以使用以下代码:
int* arr = (int*) calloc(10, sizeof(int));
与 malloc() 函数一样,我们需要使用 free() 函数来释放使用 calloc() 函数分配的内存块。
总结
在 Linux 中,我们可以使用 malloc() 和 calloc() 函数来分配内存。这些函数都属于 C 标准库,可以在包含 <stdlib.h> 头文件的程序中使用。malloc() 函数用于在堆上分配一块指定大小的内存,而 calloc() 函数会在分配内存后将其初始化为零。在使用完内存块后,我们需要使用 free() 函数将其释放,以便系统可以重新利用该内存。