malloc (0)详解
2016-04-06 11:48
309 查看
void *malloc(size_t size);
...
malloc() allocatessize bytes and returns a pointer to the allocated memory. The memory
is not cleared. Ifsize is 0, then malloc() returns either NULL, or a unique pointer value that can later be successfully passed to free()
当malloc分配内存时它除了分配我们指定SIZE的内存块,还会分配额外的内存来存储我们的内存块信息,用于维护该内存块。因此,malloc(0)返回一个合法的指针并指向存储内存块信息的额外内存,我们当然可以在该内存上进行读写操作,但是这样做了会破坏该内存块的维护信息,因此当我们调用free(ptr)时就会出现错误。
只有内存不够分配的时候才会出现,返回值为null
.
...
malloc() allocatessize bytes and returns a pointer to the allocated memory. The memory
is not cleared. Ifsize is 0, then malloc() returns either NULL, or a unique pointer value that can later be successfully passed to free()
当malloc分配内存时它除了分配我们指定SIZE的内存块,还会分配额外的内存来存储我们的内存块信息,用于维护该内存块。因此,malloc(0)返回一个合法的指针并指向存储内存块信息的额外内存,我们当然可以在该内存上进行读写操作,但是这样做了会破坏该内存块的维护信息,因此当我们调用free(ptr)时就会出现错误。
返回值
如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。函数返回的指针一定要适当对齐,使其可以用于任何数据对象。只有内存不够分配的时候才会出现,返回值为null
.
相关文章推荐
- 单源最短路径---Dijkstra
- 拓扑排序
- tomcat内存和线程数配置
- 500-19配置错误---定义了重复的“system.web.extensions/scripting/scriptResourceHandler........
- jquery 调用 click 事件 的 三种 方式
- android 仿记事本登陆
- iOS 禁用第三方键盘
- Bison眼中的iOS开发多线程是这样的(二)
- 使用批处理替换appium客户端
- Windows消息机制概述
- Python Twisted系列教程12:改进诗歌下载服务器
- html 基础知识
- 自定义view之心率线
- Linux下RPM软件包的安装、卸载和tar.gz 安装方法
- 初学linux时编辑一个文件命令
- SQL索引
- android material theme 分享一张图片
- 排序的时间复杂度
- unity 第五期
- LeetCode-290. Word Pattern