Ciao, la matrice devi allocarla in due step:
1. Allochi memoria per la variabile di tipo Matrice
2. Allochi memoria per gli m per n elementi
NOTA: Puoi vedere una matrice m per n come un array monodimensionale m per n, quindi basta allocare una sola volta e non m volte come fai tu nella funzione
Di conseguenza, tale funzione dovrebbe essere qualcosa del genere:
1. Allochi memoria per la variabile di tipo Matrice
2. Allochi memoria per gli m per n elementi
NOTA: Puoi vedere una matrice m per n come un array monodimensionale m per n, quindi basta allocare una sola volta e non m volte come fai tu nella funzione
allocaMatrice
.Di conseguenza, tale funzione dovrebbe essere qualcosa del genere:
C:
struct matrice {
int m; //numero di righe
int n; //numero di colonne
float *mat; // è un puntatore, NON un puntatore ad un puntatore
};
static Matrice *allocaMatrice(int m, int n)
{
Matrice *A;
int i;
A = malloc(sizeof(Matrice));
A->m = m;
A->n = n;
A->mat = (float *)malloc(m*n*sizeof(float));
return A;
}