calloc()函数和malloc()函数
calloc(配置内存空间)
相关函数:
malloc,free,realloc,brk
表头文件:
#include <stdlib.h>
定义函数:
void *calloc(size_t nmemb,size_t size);
函数说明:
calloc()用来配置nmemb个相邻的内存单位,每一单位的大小为size,并返回指向第一个元素的指针。
这和使用下列的方式效果相同:malloc(nmemb*size);不过,在利用calloc()配置内存时会将内存内容初始化为0。
返回值:
若配置成功则返回一指针,失败则返回NULL。
范例:
/* 动态配置10个struct test 空间*/
#include<stdlib.h>
struct test
{
int a[10];
char b[20];
}
void main()
{
struct test *ptr=calloc(sizeof(struct test),10);
}
备注:
1. calloc()函数相比malloc()函数的优点是,将所分配的内存初始化为0;
2. 范例中calloc()函数的参数顺序是先size后个数,与函数定义中先个数后size的格式不同,编译使用都没有问题,但是正确的写法可读性强一些,而且养成规范的习惯可以减少很多不必要的出错机会,和正常的说话顺序也很接近,比如我们都说“我要5个int”,而不说“我要int 5个”;
定义中的参数顺序比较规范,应按照定义中给出的顺序写代码。
原文地址:http://www.iteedu.com/os/linux/linuxprgm/linuxcfunctions/memctl/calloc.php