Post

郁闷的内存管理

这段时间用c++写了个DMRG(物理中的一种数值计算方法)的程序,大概有一两千行,算法都已经调试好了,但是上周觉得内存分配有些不合理,就做了一点改动,结果程序运行第二次循环就会出:

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

这种错误。Step by step 的变量监视调了几天了,也知道是在那里出错了,但就是想不通为什么错了。今天又没什么进展,希望明天会有灵感。

PS:这是两年多前写的。看到经常有人通过搜索引擎联到这里,想必有很我当时一样的苦恼。解决这个问题的一个好办法是借助内存检测程序来调试,比如用valgrind.一般都能很容易找到出问题的地方。

This post is licensed under CC BY 4.0 by the author.