Allocare dinamicamente memoria
vorrei allocare dinamicamente un array tridimensionale (3 x 3 x3 ) di double con il c++
nel caso di una matrice so che:
nel caso di una matrice so che:
[/quote]
double**p=new double* [3];
for (int i;i<3;i++){
p=new doulbe [3];
}
for (int i;i<3;i++){
delete [] p;
}
delete[] p;
[quote]
come posso allocare e deallocare nel caso posto all'inizio?
sapreste suggerirmi un libro in cui magari si spiega questo esempio?infatti in tutti i libri si spiega solo come allocare e deallocare un semplice vettore
Risposte
Bhe, volendo usare una soluzione simile alla precedente verrebbe
e un codice ugualmente terrificante per la deallocazione della memoria. Ma questa soluzione (e la precedente per le matrici) fa un pessimo uso della memoria. Allochi infatti una quantità enorme di "piccoli" array invece di allocarne uno grosso come sarebbe più efficiente. E' per questo che normalmente si usa un array monodimensionale al quale si accede con tre indici con qualche calcolo aritmetico.
double ***p = new double** [3]; for (int i = 0; i < 3; ++i) { p[i] = new double* [3]; for (int j = 0; j < 3; ++j) { p[i][j] = new double[3]; } }
e un codice ugualmente terrificante per la deallocazione della memoria. Ma questa soluzione (e la precedente per le matrici) fa un pessimo uso della memoria. Allochi infatti una quantità enorme di "piccoli" array invece di allocarne uno grosso come sarebbe più efficiente. E' per questo che normalmente si usa un array monodimensionale al quale si accede con tre indici con qualche calcolo aritmetico.
sei un grande;
sia per la prima che per la seconda soluzione.
ascolta visto che mangi pane e c++ sapresti consigliarmi un libro dove posso imparare bene il c++ o dove si possono trovare esempi come quello che mi hai spiegato tu?
grazie
sia per la prima che per la seconda soluzione.
ascolta visto che mangi pane e c++ sapresti consigliarmi un libro dove posso imparare bene il c++ o dove si possono trovare esempi come quello che mi hai spiegato tu?
grazie