Originariamente inviato da Fenzo
quindi se ho capito bene dovrei scrivere
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.
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.
no, essendo a un char **, l'allocazione deve essere congrua con il tipo
codice:
a = (char**) malloc( n* sizeof(char*));
for (i=0; i<n; i++) // <, non <=
     a[i]= (char*) malloc(n*sizeof(char));
in ogni caso, quando passi una matrice a una funzione, nel prototipo della funzione scrivi:

funzione(tipo_t** mat){
//qua dentro poi può far riferimento con i metodi di accesso classico
}

Magari alla funzione passa anche gli indici max_riga e max_colonna, in modo che tu possa controllare in eventuali cicli di non andare outofbound