/ / Weird SIGSEGV (errore di segmentazione) usando enums - c ++, enums, segmentation-fault, enumeration, sigsegv

Weird SIGSEGV (Errore di segmentazione) usando enumerazioni - c ++, enumerazioni, segmentation-fault, enumeration, sigsegv

Attualmente sto ricevendo un SIGSEGV (errore di segmentazione) molto strano, non usando alcun puntatore, ma solo enum; questo è il mio codice:

typedef enum
{
LIGHT,
DARK,
NONE
} Color;

class Board
{
public:
Color toMove();
private:
Color side;
};

e l'implementazione è:

Color Board::toMove()
{
return side;
}

E sto semplicemente chiamando toMove(); con risultati nell'errore di segmentazione; qui l'output gdb:

Program received signal SIGSEGV, Segmentation fault.
0x004025ee in Board::toMove (this=0x0)
at ...board.cpp:19
19          return side;

Qualcuno ha un'idea?

risposte:

8 per risposta № 1

Questo delizioso suggerimento dal tuo debugger (this=0x0) suggerisce che hai provato a chiamare toMove() senza un valido Board oggetto.


6 per risposta № 2
Board::toMove (this=0x0)

Il this = 0x0 è l'indizio: stai chiamando toMove() su un NULL Board. Non farlo :-)