Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 当我编译我的程序时,这个内存映射意味着什么?_C++_Memory_Genetic Algorithm - Fatal编程技术网

C++ 当我编译我的程序时,这个内存映射意味着什么?

C++ 当我编译我的程序时,这个内存映射意味着什么?,c++,memory,genetic-algorithm,C++,Memory,Genetic Algorithm,我用g++来编译我的程序。 我执行程序的80%时间都会得到内存映射。我不知道内存映射是什么意思,也不知道如何解决它。 以下是输出: *** glibc detected *** ./main: double free or corruption (!prev): 0x0881fdc8 *** ======= Backtrace: ========= [0x80da7f8] [0x80dec69] [0x80a5441] [0x80a546d] [0x8059227] [0x8058b2f] [0

我用g++来编译我的程序。 我执行程序的80%时间都会得到内存映射。我不知道内存映射是什么意思,也不知道如何解决它。 以下是输出:

*** glibc detected *** ./main: double free or corruption (!prev): 0x0881fdc8 ***
======= Backtrace: =========
[0x80da7f8]
[0x80dec69]
[0x80a5441]
[0x80a546d]
[0x8059227]
[0x8058b2f]
[0x8058f41]
[0x80567ec]
[0x80c075f]
[0x8048191]
======= Memory map: ========
00149000-0014a000 r-xp 00000000 00:00 0          [vdso]
08048000-08165000 r-xp 00000000 08:02 2101716    /home/armandmaree/Desktop/Projek_Fase2 (copy)/main
08166000-08168000 rw-p 0011d000 08:02 2101716    /home/armandmaree/Desktop/Projek_Fase2 (copy)/main
08168000-08170000 rw-p 00000000 00:00 0 
09a45000-09a67000 rw-p 00000000 00:00 0          [heap]
b7600000-b7621000 rw-p 00000000 00:00 0 
b7621000-b7700000 ---p 00000000 00:00 0 
b77e2000-b77e3000 rw-p 00000000 00:00 0 
bfc35000-bfc4a000 rw-p 00000000 00:00 0          [stack]
Aborted
如果你知道我如何找出问题所在,或者至少向我解释内存映射的含义,那就太好了。
提前感谢。

内存映射告诉您进程崩溃。[Backtrace:]部分告诉您崩溃发生时的堆栈回溯跟踪(哪个函数调用哪个函数)。内存映射告诉您进程中哪些地址有哪些数据


像注释中建议的其他方法一样,使用-g编译并在调试器(gdb)下运行程序以获得更好的信息。由于崩溃是由堆损坏引起的,因此使用valgrind工具会有所帮助,因为它专门处理这类问题。

双重释放或损坏
:很可能您正在调用
删除
,处理的内容不应该被删除。或者您写入的内容超出了分配内存的限制(之前或之后)。请尝试使用-g进行编译,您可能会获得更好的堆栈跟踪。您应该使用
-g
进行编译以获取调试信息,并使用例如查找更多信息。