Inoltre metti la matrice come ti ha consigliato andretti. in una struct
C:
typedef struct matrice{
size_t rows;
size_t cols;
double *data;
}matrice;
In verità ti consiglio di usare array monodimensionali per gestire le matrici prendendo come base la struct di ora fai
C:
matrice *m; //qui devi allocare spazio anche per una struct.
m->rows=numero righe da input
m->cols=numero di colonne da input
m.>data=malloc(m->rows*m->cols*sizeof(double));
in questo modo hai creato un array molto lungo dove per accedere ai dati farai
C:
for(I=0....................)
for(j=0...................)
m->data[i*m->cols+j]
trattando la matrice come un array.
ma perchè quando si dichiara la matrice non si mettono le quadre ma solo **matrice?
Perché in c non è permesso, si utilizzano i doppi puntatori e successivamente potresti accedere ai dati in quel modo. In c puoi usare le quadre nella dichiarazione solo nel momento in cui la dimensione è nota a priori
Detto questo io sono distrutto quindi se hai ancora dubbi temo dovrai aspettare fino a domani