当glibc detected *** free(): invalid next size (normal)出现

来源:互联网 发布:ubuntu安装mysql5.7 编辑:程序博客网 时间:2024/05/29 14:09

当glibc detected *** free(): invalid next size (normal)出现

 

是内存泄露的问题。 

(1)一般是free了没有分配的内存

(2)是malloc函数分配的堆空间操作越界了。例如strcpy(str,pt),pt指向一个20字节的字符串,str是指向分配15字节的堆空间,就会出现以上问题。

(3)还有就是分配了内存忘记释放也有可能会出现这样的问题。 

(4)最后查出来是数组循环的时候越界了 , 写到了其他的内存里面, 然后一free那个区域就出现了这样的问题。

 

是有allocate引起的,一个debug的方法是把你怀疑的矩阵(比如释放了就会报内存错误)定义成静态的,这样如果出现越界,会报段错误。依次检查是否你的数组真的越界了。

0 0