malloc函数
2013-09-27 17:15
113 查看
1.函数功能
Malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。
2.函数原型
extern void *malloc(unsigned int num_bytes);
3.返回值
如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。函数返回的指针一定要适当对齐,使其可以用于任何数据对象。
4.与new的区别
(1)malloc 函数返回的是 void * 类型。
(2)函数的实参为 sizeof(int) ,用于指明一个整型数据需要的大小
Malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。
2.函数原型
extern void *malloc(unsigned int num_bytes);
3.返回值
如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。函数返回的指针一定要适当对齐,使其可以用于任何数据对象。
4.与new的区别
(1)malloc 函数返回的是 void * 类型。
(2)函数的实参为 sizeof(int) ,用于指明一个整型数据需要的大小
代码也能通过编译,但事实上只分配了1个字节大小的内存空间,当你往里头存入一个整数,就会有3个字节无家可归,而直接“住进邻居家”!造成的结果是后面的内存中原有数据内容被改写。 在Linux中可以有这样:malloc(0),这是因为Linux中malloc有一个下限值16Bytes,注意malloc(-1)是禁止的;但是在某些系统中是不允许malloc(0)的。在规范的程序中我们有必要按照这样的格式去使用malloc及free: type *p; if (NULL == (p = (type *)malloc(sizeof (type))))
相关文章推荐
- malloc函数的用法
- malloc函数(百度上找的)
- 大名鼎鼎的malloc函数(动态内存分配)
- c++结构体中包含类对象成员的问题 malloc函数不能调用构造函数 new可以
- C / c++ 语言中的malloc函数
- malloc函数的一种简单的原理性实现[转]
- malloc函数详解
- malloc函数和free函数
- 编写支持对其分配的malloc和free函数,分配内存时,malloc函数返回的地址必须能被2的n次方整除
- 关于malloc函数
- malloc函数的一种简单的原理性实现[转]
- malloc函数详解以及和new的区别
- malloc函数详解
- malloc函数实现原理!
- 为什么ISR内部不可以用printf和malloc函数
- malloc函数
- C和指针之动态内存分配之(编写calloc函数,函数内部使用malloc函数来获取内存)
- malloc函数分配内存失败的原因及解决方法
- malloc函数和void *
- malloc函数与realloc函数