[问题] 使用 map 导致 Segmentation fault

楼主: mizuyoru3423 (水夜mizuyoru)   2019-11-03 18:35:06
开发平台(Platform): (Ex: Win10, Linux, ...)
Linux (Windows Subsystem for Linux, Ubuntu 18.04)
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
编译器:GCC 7.4.0
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)

问题(Question):
资料 insert 完后,需要用 find 找资料,但出现错误,且错误并非每次都出现
错误位置: 第31行,find function
喂入的资料(Input):
./main.cpp order.json info.txt
order.json: https://pastebin.com/FBTn9rRq
info.txt: https://pastebin.com/wAguCmjL
预期的正确结果(Expected Output):
2
0
0
1
错误结果(Wrong Output):
执行阶段: Segmentation fault (core dumped)
gdb debug: 没有错误
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
http://codepad.org/soCIfu0e
补充说明(Supplement):
这个错误很奇怪,有时候出现,有时候却没有,gdb也找不到错误
作者: b0920075 (Void)   2019-11-03 18:54:00
分析 core dump咧?
楼主: mizuyoru3423 (水夜mizuyoru)   2019-11-03 20:40:00
已解决,说起来有点惭愧,只是我一开始的 order 指标忘了new 而已
作者: mizuyoru (爱理柏木由衣)   2019-11-03 21:29:00
我还以为看到自己
作者: achicn3 (Sher)   2019-11-04 01:07:00
恭喜两位可以结婚了
作者: mizuyoru (爱理柏木由衣)   2019-11-04 10:23:00
这么中二的名字没想到除了我以外还有其他人会用
作者: playgame555 (我不雷)   2019-11-04 18:30:00
不求甚解的路过 以前遇过类似的问题(不是map)在main下面加一个够大的矩阵 int big_array[4096];之类的就会动了 我不知道为啥 推测是用pointer newclass的时候 没有要到该有的空间 等到call item的时候 pointer指到程式外面去了BTW我把Code载下来用GDB执行还真的不会挂掉= =不用GDB的时候大概3次死1次
作者: Lipraxde (Lipraxde)   2019-11-04 21:29:00
用 valgrind 看看吧,一些基本的错误很容易就可以抓出来的
作者: Bencrie   2019-11-05 01:21:00
valgrind 之外还有 gcc 的 -fsanitize=address

Links booklink

Contact Us: admin [ a t ] ucptt.com