free(): invalid next size (fast):错误及解决方案

./a.out: free(): invalid next size (fast): 0x000000000c29d010 ***

今天在翻写算法的时候,出现了以上的错误

free(): invalid next size (fast):错误及解决方案_第1张图片

这种错误的原因:

一般是对内存进行非法的写操作,然后free的时候就会报上面的错误

贴源码:

free(): invalid next size (fast):错误及解决方案_第2张图片

我这边malloc的时候是申请的50个字节的内存大小(原本的意思是要申请50*8个字节的大小的)。原本的意思是要申请50*8的内存大小,存放50个double类型的变量的。

结果可能是之前开发的时候,一直是申请的char 类型的malloc,所以这边误以为malloc参数是50的话,就是50个变量的大小,结果造成了越界的操作。

你可能感兴趣的:(c语言)