Originariamente inviato da superamble
Credo che comunque, come ho scritto in precedenza , il problema stia nella prima porzione di codice che ho postato e in particolare sulla chiamata di move().
Il problema era nel metodo game:
codice:
int check(ChessPiece ** game)
{
int loser=-1;
for(int i=0;i<=7 && loser==-1;i++)
{
for(int j=0;j<=7 && loser==-1;j++)
{
if(game[i][j].color!=-2)
loser=game[i][j].move(i,j,game);
}
}
return loser;
}
Non stavi allocando memoria, ma ti sei corretto tu stesso.
Quando ci sono porzioni di codice che si chiamano a vicenda non puoi sapere con certezza qual'è la parte che causa il problema, ammenochè non sia una porzione di codice indipendente dalle altre.
Comunque _tmain non è c++ standard, è fatto dalla Microsoft e ho il serio sospetto che l' unico motivo sia quello di rendere i programmi non portabili su altre piattaforme.
La funzione main del c++ standard è:
codice:
int main(int argc, char** argv)