codice:
int visita_2(char** matr,int x, int y, int row, int col,STACK pt){ 
 int i,j;
 int res;
 int *n = NULL;     
 if(x==0){           
STACK_push(pt,n);       
for(i=0;i<row;i++){           
 for(j=0;j<col;j++){                 
 if(matr[i][j]=='#'){                    
x = i;                   
 y = j;                     
 res=visita_2(matr,x,y,row,col,pt);        
 return 1;               
 }           
}      
 }     
 }                     
for(i=-1;i<=1;i++){                        
for(j=-1;j<=1;j++){                             
if(matr[x+i][y+j] == '0'){                                
 matr[x+i][y+j] = '1';                               
 (*n)++;                               
 res=visita_2(matr,x+i,y+j,row,col,pt);                            
   }                      
 }                    
}    
 return 0; }
Questo è il frammento di codice relativo alla seconda parte di esercizio che "dovrebbe" selezionarmi il percorso più breve per raggiungere la prima riga della matrice.
L'errore che mi da è di segmentation fault dopo lo svolgimento della prima parte,nonchè la visualizzazione del percorso trovato,mentre non viene visualizzato alcun errore sul piano sintattico(0 errors 0 warnings).
Nella istruzione banale if(X==0),cioè se sei giunto alla prima riga inserisci in uno STACK il valore di n che hai calcolato nella ricorsione(sarebbe (*n++)).L'idea è stata inserisci in Stack E FAI RIPARTIRE L'OPERAZIONE DI VISITA,ma è evidente che c'è qualche istruzione che non permette di interpretare il codice adeguatamente,ho pensato ad un problema di strutturazione della mia funzione ma senza trovare l'errore,qualcuno saprebbe darmi una spiegazione al segmentation fault??dove sta l'errore?
Grazie a tutti.