学习网址
C语言动态内存函数(malloc、calloc、realloc、free)详解:https://www.jb51.net/program/295325hjh.htm
C语言动态内存函数详解:https://www.jb51.net/article/223725.htm
calloc函数
需要头文件:<stdlib.h>
calloc函数(动态内存分配函数):
void* calloc(size_t num, size_t size);
功能:
- 函数的功能是,为
num个
大小为size
的元素
开辟一块空间,并且把空间的每一个字节初始化为0
。 - num是元素的个数,size是每个元素的大小。(字节为单位)返回一个指向分配内存的指针。
- 所以要对申请的内存空间初始化时,可以直接使用calloc函数。
- 与malloc函数的区别:
- malloc只是分配内存,而calloc还会将分配的内存初始化为0。
- calloc函数会在返回地址之前把申请空间的每一个字节初始化为0.
举个例子:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int* p = (int*)calloc( 10,sizeof(int));
if (p == NULL)
{
perror("calloc");
exit;
}
free(p);
p = NULL;
return 0;
}
p指向的地址:
可以看到上面的p里面的10个元素地址是依次增加4的, 因为是int类型的所以每个元素占4字节,地址也是一样的4.