Linux 下的各种内存错误

这两天在写一个多线程的代码,并行求最大独立子集,由于一个欠考虑的循环赋值导致了coredump,调试过程太曲折了。。为了记下这个教训,整理点内存错误的一些原因。


free(): invalid next size (fast): 0x095f6070

是由于对指针0x095f6070指向的空间,进行写操作超过了他实际申请的大小

   *** glibc detected *** free(): invalid pointer:
当一个指针或者该指针所指向的内存单元成为无效单元,或者内存中分配的数据结构被破坏时,就会造成内存错误。指针未被初始化,指针被初始化为一个无效地址,指针被不小心错误地修改,在与指针相关联的内存区域被释放后使用该指针(这种指针被称为虚悬(dangling)指针),这些都会使指针变为无效指针。当通过一个错误指针或者虚悬指针对内存进行写入,或者将指针强制转换为不匹配的数据结构,又或者是写数据越界,内存自身也会遭到破坏。删除未被初始化的指针、删除非堆指针、多次删除同一指针或者覆盖一个指针的内部数据结构,都会造成内存分配系统错误。


   *** glibc detected *** malloc(): memory corruption:

一般是由于对内存的写越界,从而导致内存的管理信息遭到破坏。


   *** glibc detected *** double free or corruption (out): 0x00000000005c18a0 ***

double free 就不解释了,corruption错误同上,主要也是由于内存的越界写。

   *** glibc detected *** corrupted double-linked list: 0x00000000005ab150 ***  

待续。。希望大家给建议

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值