7.6 为什么我的程序总是在malloc内部崩溃

问题:

我的程序总是崩溃, 显然在malloc 内部的某个地方。

但是我看不出哪里有问题。

是malloc() 有bug 吗?

很不幸, malloc 的内部数据结构很容易被破坏, 而由此引发的问题会十分棘手。

最常见的问题来源是向malloc 分配的区域写入比所分配的还多的数据;

一个常见的bug 是用malloc(strlen(s)) 而不是strlen(s) + 1。

其它的问题还包括使用指向已经释放了的内存的指针,

释放未从malloc 获得的内存,

或者两次释放同一个指针,

或者试图重分配空指针, 参见问题7.25。

参见问题7.23, 16.7 和18.2。

永不止步步 发表于01-14 10:53 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:345377个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号