数据结构和算法 - 用C++写多项式相加算法,运行出现问题,求解

浏览:27日期:2023-06-02

问题描述

问题解答

回答1:

所以是遇到 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。

至于怎么解决,你应该可以自己想明白。

相关文章: