关于malloc函数什么时候会分配空间失败

首先,在这里先复习一下我之前说的关于malloc函数的有关问题。这里给大家放上链接

https://blog.csdn.net/suliangkuanjiayou/article/details/83477415.

       今天在写有关HuffmanTree时,遇到了一点关于指针的问题,然后再解决问题的过程中,就发现了malloc函数有时是会分配空间失败的。
       在分配空间时,如果你仅仅分配了5个int型的空间大小,但是你却初始化了5个以上的值,那么编译器并不会去报错,你也有可能程序运行起来一点问题都没有,但是一旦工程大了后,就会出现问题。这就像我上边的博客文章里面谈到的这个事情。但是,今天要说的是另外一种情况。(前提不是因为你的电脑内存不足)
       在你分配空间后,但是初始化过多时。那么,当你接下来继续使用malloc函数时,就会报错,malloc函数是无法执行的(当然,这个只有你去调试时你才会知道这一点)。 本来还有一张图的,在上面清楚的写着 !malloc…什么的,但是现在没有了。总之,我就是想说,如果你调试发现是因为malloc函数分配空间失败,就可以去看一下上一个malloc函数分配的空间是否出现了与越界访问,可能是因为它引起的。

你可能感兴趣的:(c语言常见问题和解决方法)