Linux C/C++编译运行错误 free(): invalid next size (fast): 0x xxxxxxxxxx

前几天项目中,程序运行总是在报上述错误: free(): invalid next size (fast): 0x xxxxxxxxxx,于是上网查了很多,也检查了好久的代码,这里总结一下网上所述的各种错误:

  1. 该问题是因为malloc( sizeof(stat) ),   实际stat是个结构体,应该为malloc( sizeof(struct stat) ),原文地址为:http://gxy73022.blog.163.com/blog/static/107127562014125104221394/
  2. malloc分配的内存,却用了delete或者new出来的对象,却用了free.原文地址为:https://blog.csdn.net/acs713/article/details/70155022
  3. 动态申请的指针,在程序中间被修改,即:free的指针已经不是最初申请空间时候的地址,因此free时会出现内存错误,原文地址为:https://blog.csdn.net/feiyangyangfei/article/details/77455260
  4. 可能是在程序中间运行时,内存空间分配不足导致最后再释放内存时内存溢出。(找了几天的错误就是这个错误,坑爹啊,最后发现是调用别人的代码,别人分配内存不够)

猜你喜欢

转载自blog.csdn.net/liu548zhou/article/details/81559929