PHP中文网2017-04-17 13:02:30
所以是遇到 SegmentFault 就来 SegmentFault 求助了么……
新手遇到 segfault 其实很正常,此时可以善于使用 GDB。使用 GDB 跑一下你的代码,使用 bt 命令打印一下调用栈:
#0 0x0000000000400f5a in Term::insertTerm (this=0x0, c=1, e=2) at tmp.cpp:24
#1 0x0000000000400db9 in addPlus (L=@0x7fffffffdf48: 0x603010,
M=@0x7fffffffdf50: 0x6030c0) at tmp.cpp:111
#2 0x0000000000400aa6 in main () at tmp.cpp:42
可以发现,addPlus 函数中初始的 N 是 NULL,而你直接调用 N 的方法,就出现了 this 为 NULL 的情况。deference 一个空指针自然会导致 segfault。
至于怎么解决,你应该可以自己想明白。