我是靠谱客的博主 眯眯眼蓝天,这篇文章主要介绍malloc失败的另一种原因,现在分享给大家,希望可以做个参考。

在C语言中, 执行到malloc程序core的时候, 一般人的第一反应是内存空间不足. 常见的代码为:

复制代码
1
2
#define SIZE 100 int* p = (int*)malloc(SIZE * sizeof(int));
但是, 事实情况是: 内存还多的很.

有的C编译器对没有声明的函数, 是不报错的(有的连警告都没有, C编译器认为程序员永远是正确的). 糟糕的是, C编译器默认认为函数的返回值是int类型. 如果没有加以下头文件的话:

复制代码
1
#include <stdlib.h>

程序把malloc的返回值强转成int, 然后再转成int*. 于是程序core了.

最后

以上就是眯眯眼蓝天最近收集整理的关于malloc失败的另一种原因的全部内容,更多相关malloc失败内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部