木其网络科技专业程序员代写http://www.xmsydw.com
程序员学历擅长经验网店链接
apenny硕士ASP.NET PHP 电子 通信设计 图像 编程 网络5年进入店铺
zheng_qianqian本科C语言 C++面向对象 Java3年进入店铺
guoguanl本科Java Web项目 JSP Hibernate Struts Mysql4年进入店铺

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


posted @ 2012-01-05 10:28  C语言程序  阅读(351)  评论(0编辑  收藏  举报
木其网络科技专业程序员代写http://www.xmsydw.com
程序员学历擅长经验网店链接
apenny硕士ASP.NET PHP 电子 通信设计 图像 编程 网络5年进入店铺
zheng_qianqian本科C语言 C++面向对象 Java3年进入店铺
guoguanl本科Java Web项目 JSP Hibernate Struts Mysql4年进入店铺