quindi se ho capito bene dovrei scrivereOriginariamente inviato da Celebron
a=malloc(n*n*sizeof(char)); <--- WRONG
prima allochi le righe
poi con un for allochi le colonne
con la tua soluzione hai semplicemente creato un array A di n*n "caselle"
codice:a=malloc(n*sizeof(char)); for (i=0,i<=n,i++) *(a+i)=malloc(n*sizeof(char))per quanto riguarda il compilatore, uso devc++. Lo so che fa schifo ma sul computer che sto usando ora ho windows e non sono riuscito a trovare di meglio. E comunque (e la cosa mi preoccupa!) non mi da nessun warning.edit: in più non capisco la parte iniziale dove hai un
char M[n][n] senza avere n inizializzata a nessun valore
ma scusa il compilatore non ti restituisce nessun warning? Se no, per favore, cambialo
e non capisco nemmeno il fatto che poi a M assegni "a"
facendo un M[n][n] già allochi (allocazione automatica), non ha senso fare ciò che tu hai fatto.
Dovresti prima creare un char** M;
quindi fare l'allocazione dinamica come ti ho spiegato sopra
a quel punto puoi accedere alle posizione di M come se fosse una matrice normale.
Il fatto è che questo è uno degli esercizi che ha assegnato il professore. Già non sono sicuro di poter usare l'allocazione dinamica e inoltre la funzione che devo fare deve avere come parametro M[n][n] non un puntatore.


Rispondi quotando