Vorrei saper come posso fare a creare una matrice dinamica ???
Perchè per lo standar c++ I valori degli indici devono essere delle costanti, mi hanno detto che esiste un altro metodo, ma non lo conosco!
Vorrei saper come posso fare a creare una matrice dinamica ???
Perchè per lo standar c++ I valori degli indici devono essere delle costanti, mi hanno detto che esiste un altro metodo, ma non lo conosco!
Devi studiarti l'allocazione/deallocazione dinamica di memoria con gli operatori new e dispose. L'argomento è trattato in tutti i libri sul C++.
Inoltre il tema è stato discusso più volte in questo forum.
"Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."
ecco la tua matricecodice:int i,j; i = quellochetipare; j= quellochevuoi; int *t = new int[i][j];
"Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)
"Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)
http://xvincentx.netsons.org/programBlog
Ne sei sicuro XWolverineX ? Non mi sembra un metodo corretto...Originariamente inviato da XWolverineX
ecco la tua matricecodice:int i,j; i = quellochetipare; j= quellochevuoi; int *t = new int[i][j];
01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
All errors are undocumented features waiting to be discovered.
Se la matrice e'
e il numero di righe e colonne le inserisci in due variabili appositecodice:int **Matrix;
per allocare scrivicodice:int rows = 10, cols = 10;
e per liberare la memoriacodice:Matrix = new int*[rows]; for(int i=0;i<rows;i++) Matrix[i] = new int[cols];
P.S. XWolverineX ... in effetti non e' corretto il codice che hai scritto ...codice:for(int i=0;i<rows;i++) delete Matrix[i]; delete Matrix;
chiedo scusa, io creo una matrice e libero la memoria, poi mi faccio stampare un generico elemento della matrice e questo è ancora in memoria, stampato correttamente. E' normale una cosa del genere? :berto:codice:for(int i=0;i<rows;i++) delete Matrix[i]; delete Matrix; cout<<Matrix[val1][val2] //val1 e val2 fissati a seconda se nella matrice usata esistevano o meno
"La fortuna aiuta gli audaci"
(e non gli adagiati)
Normalissimo. La memoria viene solo deallocata, non viene cancellata ...Originariamente inviato da Loue
... chiedo scusa, io creo una matrice e libero la memoria, poi mi faccio stampare un generico elemento della matrice e questo è ancora in memoria, stampato correttamente. E' normale una cosa del genere? :berto:
Naturalmente la cosa funziona finche' il sistema non decide di utilizzare la memoria in altro modo ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
ok, quindi sarà utilizzata dal sistema qualora ne abbia bisogno.Originariamente inviato da oregon
Normalissimo. La memoria viene solo deallocata, non viene cancellata ...
Naturalmente la cosa funziona finche' il sistema non decide di utilizzare la memoria in altro modo ...
Grassie
"La fortuna aiuta gli audaci"
(e non gli adagiati)
Difatti di solito si annulla il puntatore:
così sei sicuro di non andare a pescare dati da un territorio pericoloso, come quello deallocato.codice:delete Matrix; Matrix = NULL;
delete [] Matrix;
This code and information is provided "as is" without warranty of any kind, either expressed
or implied, including but not limited to the implied warranties of merchantability and/or
fitness for a particular purpose.