用calloc()函数分配内存
2009-08-04 17:28
197 查看
用calloc()函数分配内存
calloc函数原型:
void *calloc(size_t num_elements, size_t element_size);
在<stdlib.h>头文件中声明的calloc()函数与malloc()函数相比有两个优点。第一,它把内存分配为给定大小的数组,第二,它初始化了所分配的内存,所有的位都是0。calloc()函数需要两个参数:数组的元素个数和数组元素占用的字节数,这两个参数的类型都是size_t。该函数也不知道数组元素的类型,所以所分配区域的地址返回为void *类型。
下面的语句使用calloc()为包含75个int元素的数组分配内存:
int *p = ( int *) calloc(75, sizeof( int ) );
如果不能分配所请求的内存,返回值就是NULL,也可以检查分配内存的结果,这非常类似于malloc(),但calloc()分配的内存区域都会初始化为0。
总结:这个初始化常常能带来方便,也直观,但是,如果程序只想把一些值存储到数组中,那么这个初始化纯属浪费时间!
calloc函数原型:
void *calloc(size_t num_elements, size_t element_size);
在<stdlib.h>头文件中声明的calloc()函数与malloc()函数相比有两个优点。第一,它把内存分配为给定大小的数组,第二,它初始化了所分配的内存,所有的位都是0。calloc()函数需要两个参数:数组的元素个数和数组元素占用的字节数,这两个参数的类型都是size_t。该函数也不知道数组元素的类型,所以所分配区域的地址返回为void *类型。
下面的语句使用calloc()为包含75个int元素的数组分配内存:
int *p = ( int *) calloc(75, sizeof( int ) );
如果不能分配所请求的内存,返回值就是NULL,也可以检查分配内存的结果,这非常类似于malloc(),但calloc()分配的内存区域都会初始化为0。
总结:这个初始化常常能带来方便,也直观,但是,如果程序只想把一些值存储到数组中,那么这个初始化纯属浪费时间!
相关文章推荐
- 【C/C++】内存分配函数:malloc,calloc,realloc,_alloca
- C语言三个内存分配函数比较,malloc calloc realloc
- 内存分配函数malloc、realloc、calloc、_alloca
- c中内存分配与释放(malloc,realloc,calloc,free)函数内容的整理
- 【C/C++】内存分配函数:malloc,calloc,realloc,_alloca
- malloc,calloc,realloc等内存分配函数区别
- C语言calloc()函数:分配内存空间并初始化
- malloc calloc realloc三个内存分配函数区别
- malloc,calloc,realloc等内存分配函数区别
- malloc,calloc,realloc等内存分配函数区别
- 【C/C++】内存分配函数:malloc,calloc,realloc,_alloca
- C语言malloc,calloc,realloc,free内存分配函数学习笔记
- c中内存分配与释放(malloc,realloc,calloc,free)函数内容的整理
- malloc,calloc,realloc等内存分配函数区别
- malloc、calloc、realloc、alloca几个内存分配函数的区别
- 【C/C++】内存分配函数:malloc,calloc,realloc,_alloca
- malloc,calloc,realloc等内存分配函数区别
- malloc,calloc,realloc等内存分配函数区别
- [转]内存分配函数 _alloc/malloc/calloc
- C语言calloc()函数:分配内存空间并初始化