Discussione: [c] Matrici dinamiche
View Single Post
Old 20-06-2004, 22:38   #2
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16211
Puoi implementare una matrice bidimensionale usando un vettore dinamico di vettori dinamici. Per esempio:
Codice:
double **mat;
Se vuoi una matrice con m righe ed n colonne, la allochi con:
Codice:
mat=(double**)malloc(m*sizeof(double*));
if (mat!=NULL)
    for (i=0; i<m; i++)
        mat[i]=(double*)malloc(n*sizeof(double));
e quando devi deallocarla:
Codice:
for (i=0; i<m; i++)
    free(mat[i]);
free(mat);
Puoi anche fare una cosa un po' pių elaborata, usando le strutture, ad esempio:
Codice:
struct matrice {
    int r,c;
    double **val;
};
cosė hai pių controllo sulle operazioni che ci fai (esempio: per il prodotto, il numero delle colonne del primo fattore deve essere uguale al numero di righe del secondo).
__________________
Ubuntu č un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio č offline   Rispondi citando il messaggio o parte di esso