malloc函数详解
来源:互联网 发布:php网站开发实例教程 编辑:程序博客网 时间:2024/06/06 12:37
在逛知乎过程中,偶然发现一个问题:malloc(0)从堆空间申请0个字节,咋办?是报错,还是返回正确地址?申请的空间又有和意义?内存碎片又是什么?带着这一系列问题,我到网上找到了一篇不错的博客,对其解释比较恰当。不过首先列出我自己实测的代码情况:
#include <stdio.h>#include <stdlib.h>int main(int argc, char const *argv[]){char *p = (char *)malloc(0);printf("p = %p\n",p);printf("sizeof(p) = %d\n",sizeof(p));printf("sizeof(*p) = %d\n",sizeof(*p));return 0;}此程序运行结果:
p = 0x16a0010
sizeof(p) = 8
sizeof(*p) = 1
解释一下,第一行说明malloc(0)成功了,并且返回了一个堆地址,只是由于我们申请的是0个字节,所以这个空间无法使用,第二行说明指针p占8个字节(对于64bit系统而言),第三个表示指针所指向的类型所占字节大小,这里是char型,所以为1,如果是int,则为4。
malloc函数,详见:http://www.cnblogs.com/Commence/p/5785912.html
阅读全文
0 0
- malloc函数详解
- malloc函数详解
- malloc函数详解
- malloc 函数详解
- malloc函数详解
- malloc函数详解
- malloc函数详解
- malloc函数详解
- malloc函数详解
- malloc函数详解
- malloc函数详解
- malloc函数详解
- malloc函数详解
- malloc函数详解
- malloc()、free()函数详解
- malloc函数详解
- malloc函数详解
- malloc函数详解
- pycharm (ubuntu)专业版安装步骤
- JSON.parseObject 和 JSON.toJSONString 实例
- idea创建web项目部署到tomcat服务器,servlet不能用问题解决
- linux快速清空日志
- vue 重温一下vue运行生命周期,与分子组件事件分发
- malloc函数详解
- 洛谷P2814 家谱
- 欢迎使用CSDN-markdown编辑器
- 【LeetCode】561. Array Partition I
- python 验证码库 captcha的使用以及遇到的问题解决
- 线性回归与梯度下降(gradient descent)算法
- English words page one
- 畅通工程续
- 欢迎使用CSDN-markdown编辑器