malloc的两个兄弟calloc,realloc你认识吗?
2014-12-12 16:05
330 查看
看下面程序,然后解释:
malloc:
1,其内只有一个参数,一个指定所需字节数的整数。
2,malloc它允许从空间内存池中分配内存。
3,使用malloc时,已分配的内存中可以是任意的值.
4,函数原型 : void *malloc(unsigned size)。//动态申请size个字节的内存空间;
功能:在内存的动态存储区中分配一块长度为" size" 字节的
5,(类型说明符*)表示把返回值强制转换为该类型指针。
calloc:
1,存储在已分配的内存空间中的值默认为0.
2,colloc需要两个参数,第一个是需要分配内存的变量的个数,第二个是每个变量的大小.
3,(void *)calloc(unsigned n,unsigned size)// 用于向系统动态申请n个,
每个占size个字节的内存空间;
并把分配的内存全都初始化为零值。函数的返回值为该区域的首地址
4,
5,
区别:两者都是动态分配内存。主要的不同是malloc不初始化分配的内存,已分配的内存中可以是任意的值. calloc 初始化已分配的内存为0。次要的不同是calloc返回的是一个数组,而malloc返回的是一个对象。
realloc:
1,原型:extern void *realloc(void *mem_address, unsigned int newsize);
2,用法:#include <stdlib.h> 有些编译器需要#include <alloc.h>
3,功能:改变mem_address所指内存区域的大小为newsize长度。
4,说明:如果重新分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
5, 当内存不再使用时,应使用free()函数将内存块释放。
6,注意:这里原始内存中的数据还是保持不变的。
7,(void *)realloc(void *p,unsigned size)//将指针p所指向的已分配内存区的大小改为size
malloc:
1,其内只有一个参数,一个指定所需字节数的整数。
2,malloc它允许从空间内存池中分配内存。
3,使用malloc时,已分配的内存中可以是任意的值.
4,函数原型 : void *malloc(unsigned size)。//动态申请size个字节的内存空间;
功能:在内存的动态存储区中分配一块长度为" size" 字节的
5,(类型说明符*)表示把返回值强制转换为该类型指针。
calloc:
1,存储在已分配的内存空间中的值默认为0.
2,colloc需要两个参数,第一个是需要分配内存的变量的个数,第二个是每个变量的大小.
3,(void *)calloc(unsigned n,unsigned size)// 用于向系统动态申请n个,
每个占size个字节的内存空间;
并把分配的内存全都初始化为零值。函数的返回值为该区域的首地址
4,
5,
区别:两者都是动态分配内存。主要的不同是malloc不初始化分配的内存,已分配的内存中可以是任意的值. calloc 初始化已分配的内存为0。次要的不同是calloc返回的是一个数组,而malloc返回的是一个对象。
realloc:
1,原型:extern void *realloc(void *mem_address, unsigned int newsize);
2,用法:#include <stdlib.h> 有些编译器需要#include <alloc.h>
3,功能:改变mem_address所指内存区域的大小为newsize长度。
4,说明:如果重新分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
5, 当内存不再使用时,应使用free()函数将内存块释放。
6,注意:这里原始内存中的数据还是保持不变的。
7,(void *)realloc(void *p,unsigned size)//将指针p所指向的已分配内存区的大小改为size
相关文章推荐
- 探析malloc、calloc和realloc的区别以及认识柔性数组
- calloc(), malloc(), realloc(), free(),alloca()
- realloc、calloc和malloc
- malloc,calloc,realloc等内存分配函数区别
- calloc(), malloc(), realloc(), free(),alloca()
- llinux -c 之动态内存分配函数(malloc、calloc、realloc)
- malloc,realloc,calloc的使用场合及特点,以及malloc的实现原理
- 2010-09-25 13:39 浅谈内存分配malloc,calloc,realloc
- malloc,calloc,realloc等内存分配函数区别
- realloc,malloc,calloc的区别
- realloc,malloc,calloc三者的区别
- realloc,malloc,calloc的区别
- 内存分配(malloc/realloc/calloc区别)
- realloc malloc calloc的 区别
- C语言中realloc,malloc,calloc区别
- 动态内存管理(malloc、 free、 calloc、 realloc)
- C语言realloc,malloc,calloc的区别【转载】
- malloc,calloc,realloc等内存分配函数区别
- malloc,calloc,realloc,free函数
- malloc realloc calloc 的故事