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 № 1Questo 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 :-)