当glibc detected *** free(): invalid next size (normal)出现
是内存泄露的问题。
(1)一般是free了没有分配的内存
(2)是malloc函数分配的堆空间操作越界了。例如strcpy(str,pt),pt指向一个20字节的字符串,str是指向分配15字节的堆空间,就会出现以上问题。
(3)还有就是分配了内存忘记释放也有可能会出现这样的问题。
(4)最后查出来是数组循环的时候越界了 , 写到了其他的内存里面, 然后一free那个区域就出现了这样的问题。
是有allocate引起的,一个debug的方法是把你怀疑的矩阵(比如释放了就会报内存错误)定义成静态的,这样如果出现越界,会报段错误。依次检查是否你的数组真的越界了。