Salve a tutti.Ho un problema con un programma.Questo è scritto sintatticamente in forma corretta solo che quando eseguo il debug mi esce questo errore "Segmentation fault(core dumped)".Non so che problema sia e come risolverlo.Premetto che questo programma deve poter dividere in modo RICORSIVO una matrice in 4 parti e mettere il carattere 'D' su ogni diagonale delle 4 parti della matrice prese in considerazione.Inoltre in alto a destra di ogni parte ci deve essere il carattere 'A'.Spero che mi possiate aiutare.Grazie in anticipo!!!!
codice:
#include <stdio.h>
#include <stdlib.h>
#define N 32
int x=0,y=0;
void stampa(char mat[][N]);
void inizializza(char mat[][N]);
void funz(char mat[][N],int z,int t);
int main()
{
char mat[N][N];
inizializza(mat);
funz(mat,0,0);
funz(mat,0,16);
return 0;
}
void stampa(char mat[][N]){
int i,j;
for(i=0;i<N;i++){
for(j=0;j<N;j++){
printf("%c|",mat[i][j]);
}printf("\n");
}printf("\n");
}
void funz(char mat[][N],int z,int t){
x=z;
y=t;
int i=0,cont;
mat[x][y+15]='A';
for(;i<16;x++,y++,i++){
mat[x][y]='D';
}
cont++;
if(cont==2){
stampa(mat); }
else{
return(funz(mat,z+16,t),cont++);
}
}
void inizializza(char mat[][N]){
int i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
mat[i][j]='X';
stampa(mat);
}