今天遇到了一个问题。先用malloc()分配一定大小的内存,然后在主函数最后要对这些内存进行释放。调用free函数,执行报错。单步调试 执行free()后的报错如图 1所示。
最终发现我是这样做的:例如 分配10个元素内存,我对这10个元素进行了赋值,最后是调用了free()函数,报错!!!
如果我分配10个元素的内存,只对9个(只要小于10就行)元素进行赋值,再调用free()函数,就不会报错了!!
好神奇,虽然问题解决了,但是不知道原理。希望有懂这方面的给解释一下。感谢了!谢谢。
今天遇到了一个问题。先用malloc()分配一定大小的内存,然后在主函数最后要对这些内存进行释放。调用free函数,执行报错。单步调试 执行free()后的报错如图 1所示。
最终发现我是这样做的:例如 分配10个元素内存,我对这10个元素进行了赋值,最后是调用了free()函数,报错!!!
如果我分配10个元素的内存,只对9个(只要小于10就行)元素进行赋值,再调用free()函数,就不会报错了!!
好神奇,虽然问题解决了,但是不知道原理。希望有懂这方面的给解释一下。感谢了!谢谢。