我目前正在获得一个非常奇怪的SIGSEGV(分段错误),不使用任何指针,只是枚举;这是我的代码:
typedef enum
{
LIGHT,
DARK,
NONE
} Color;
class Board
{
public:
Color toMove();
private:
Color side;
};
,实施是:
Color Board::toMove()
{
return side;
}
我只是简单地在toMove();
调用分段错误的结果;这是gdb输出:
Program received signal SIGSEGV, Segmentation fault.
0x004025ee in Board::toMove (this=0x0)
at ...\board.cpp:19
19 return side;
有人有个主意吗?
答案 0 :(得分:8)
来自调试器(this=0x0
)的这个可爱提示表示您尝试在没有有效toMove()
对象的情况下调用Board
。
答案 1 :(得分:6)
Board::toMove (this=0x0)
this = 0x0
是线索:您在NULL toMove()
上调用Board
。不要这样做: - )