Non conosco la logica del tuo programma , ma gli unici numeri che stampa , non sono indirizzi , sono numeri stampati dalla funzione Game in seguito alle condizioni che tu hai posto






codice:
if(flag==0 && i!=0 && i!=44 && j!=0 && j!=44)
             if((tab[i-1][j].stato==1) || (tab[i][j+1].stato==1) || (tab[i+1][j].stato==1) || (tab[i][j-1].stato==1))
             {
                 printf("9"); 
                 appoggio[i][j]=1;
                 flag=1;
             }