Странный SIGSEGV (ошибка сегментации) с использованием перечислений - PullRequest
0 голосов
/ 26 июня 2011

В настоящее время я получаю очень странный 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 ]

8 голосов
/ 26 июня 2011

Этот прекрасный совет от вашего отладчика (this=0x0) предполагает, что вы пытались вызвать toMove() без действительного Board объекта.

6 голосов
/ 26 июня 2011
Board::toMove (this=0x0)

this = 0x0 является ключом: вы звоните toMove() на NULL Board.Не делай этого: -)

...