PDA

View Full Version : [C] Dubbi sui puntatori doppi


Matthew82
19-07-2008, 17:43
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;

}

71104
19-07-2008, 18:13
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).

Matthew82
19-07-2008, 18:15
edit;)