Linux->报错free():invalid next size(fast)

这是今天写堆机构的时候遇到的一个报错,如下图:

Linux->报错free():invalid next size(fast)_第1张图片

这里我要动态开辟一段空间来存放数组的内容,这是错误的开辟方法,因为a这里是一个指针不能代表整个数组,因此这里只开辟了4个字节的空间。

Linux->报错free():invalid next size(fast)_第2张图片
Linux->报错free():invalid next size(fast)_第3张图片
更改开辟的大小之后,问题就解决了。出现问题的原因是free释放的空间与malloc开辟的空间不一致,因为后面我使用这段空间的大小远远大于我开辟的空间的大小。
Linux->报错free():invalid next size(fast)_第4张图片
引以为戒啊!!

你可能感兴趣的:(Linux)