奇怪的SIGSEGV(分段错误)使用枚举

时间:2011-06-26 10:46:26

标签: c++ enums segmentation-fault enumeration sigsegv

我目前正在获得一个非常奇怪的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;

有人有个主意吗?

2 个答案:

答案 0 :(得分:8)

来自调试器(this=0x0)的这个可爱提示表示您尝试在没有有效toMove()对象的情况下调用Board

答案 1 :(得分:6)

Board::toMove (this=0x0)

this = 0x0是线索:您在NULL toMove()上调用Board。不要这样做: - )