grazie per l'esaustiva rispostaOriginariamente inviato da ramy89
Anche se come si dice in gergo "funziona" non vuol dire che sia corretto.
La memoria va allocata !
Qui hai una matrice di puntatori.codice:char *word[ELEM][ELEM];
Ma sono tutti puntatori che contengono solo un indirizzo,non ci hai allocato memoria.
Con questa matrice potresti prendere su (allocando spazio) ELEM x ELEM stringhe:
Oppure sostiusuisci la riga con:codice:for(i=0;i<ELEM;i++) for(j=0;j<ELEM;j++) { word[i][j]=(char*)calloc(100,sizeof(char)); fgets(word[i][j],100,stdin); } for(i=0;i<ELEM;i++) for(j=0;j<ELEM;j++) puts(word[i][j]);
E prendi su le righe con scanf anche se te lo sconsiglio,meglio usare fgets.codice:char word[ELEM][ELEM];