概述
在C语言中, 执行到malloc程序core的时候, 一般人的第一反应是内存空间不足. 常见的代码为:
#define SIZE 100
int* p = (int*)malloc(SIZE * sizeof(int));
但是, 事实情况是: 内存还多的很.
有的C编译器对没有声明的函数, 是不报错的(有的连警告都没有, C编译器认为程序员永远是正确的). 糟糕的是, C编译器默认认为函数的返回值是int类型. 如果没有加以下头文件的话:
#include <stdlib.h>
程序把malloc的返回值强转成int, 然后再转成int*. 于是程序core了.
最后
以上就是眯眯眼蓝天为你收集整理的malloc失败的另一种原因的全部内容,希望文章能够帮你解决malloc失败的另一种原因所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复