我是靠谱客的博主 眯眯眼蓝天,最近开发中收集的这篇文章主要介绍malloc失败的另一种原因,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在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失败的另一种原因所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部