double free or corruption错误

这是我自己写代码是遇到的错误,完全想不到报错和写错的地方有关联性,记录下来给别人参考。

不允许转载。

WhiteBack(&cut_buff,&out_buff,5)函数内有一段

begin = end;
end = extra_height * width;
for (int i = 0; i < end; i++) {
    out->cut_buff[begin+i] = 255;
}

cut_buff是自己申请的空间,这个for循环操作超过了我申请的范围。

然后打上断点,报错地方却是在后一个restoreToGray函数的fclose(fp)处。

非常奇怪的确是,我在函数前加上释放另一段我自己申请的空间free(cut_buff.cut_buff);报错又消失了,但是当我要释放out->cut_buff时又一次报错了。

所以double free or corruption不一定是二次释放了,而且为此报错的地方都是释放指针对象的操作。

转载于:https://www.cnblogs.com/Jacket-K/p/7595451.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值