|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2007
Messaggi: 543
|
[C] Dubbi sui puntatori doppi
Ho una matrice 4x4 dentro una funzione. Quando ritorno la matrice dalla funzione che ritorna un doppio puntatore, a cosa punta fisicamente il doppio puntatore. All'indirizzo della prima cella della matrice? Poi quando scorro le righe e le colonne, fisicamente come vengono scorse?
Questa è la funzione: float** Funzione(.....) { float **matr; // matrice 4x4 dinamica matr = new float*[4]; for(int i=0; i<4; i++) { matr[i] = new float[4]; } ..... ..... ..... return matr; } Ultima modifica di Matthew82 : 19-07-2008 alle 18:15. |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
c'è un errore nel codice, non puoi castare float** a double** perché float e double hanno tipicamente dimensione diversa.
il puntatore che ritorni punta alla prima locazione di un array di puntatori float* (mi pare ovvio). quando scorri la matrice puoi scorrerla nell'ordine che ti pare, ma tipicamente scorrerai le righe dalla prima all'ultima (quindi scorrerai l'array di float*) e per ogni riga scorrerai le colonne dalla prima all'ultima (quindi scorri l'array di float di quella riga). |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Feb 2007
Messaggi: 543
|
edit
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:02.



















