PDA

Visualizza la versione completa : [C++] Costruzione matrice 4x5


Matthew82
29-09-2008, 10:50
Ho costruito una matrice 4x4 in questo modo:

float **matr; // matrice 4x4 dinamica

matr = new float*[4];

for(int i=0; i<4; i++)
{
matr[i] = new float[4];
}

Vorrei costruire la stessa matrice però 4x5, cioè 4 righe e 5 colonne.
Quale parte devo modificare?

Grazie a tutti.

oregon
29-09-2008, 13:15
In fondo non e' importante ... a seconda di cosa tu indendi righe e cosa colonne ...

Puoi modificare il primo [4] in [5] o il secondo [4] in [5] ...

YuYevon
29-09-2008, 13:26
Beh a ben pensarci la prima allocazione serve ad allocare spazio per 4 puntatori a float che sono le righe della matrice. Dopo, nel ciclo for, per ognuno di questi puntatori/riga viene allocato spazio per 4 valori, il che significa che crei 4 colonne. Dovendo allocare spazio per 5 colonne (come vuoi fare tu) dovresti quindi lasciare la prima allocazione così come è (le 4 righe rimangono 4 righe) e modificare il float [4] nel ciclo for con float [5].

Correggetemi se sbaglio, cosa non improbabile :)

oregon
29-09-2008, 13:58
Originariamente inviato da YuYevon
Beh a ben pensarci la prima allocazione serve ad allocare spazio per 4 puntatori a float che sono le righe della matrice. Dopo, nel ciclo for, per ognuno di questi puntatori/riga viene allocato spazio per 4 valori, il che significa che crei 4 colonne. Dovendo allocare spazio per 5 colonne (come vuoi fare tu) dovresti quindi lasciare la prima allocazione così come è (le 4 righe rimangono 4 righe) e modificare il float [4] nel ciclo for con float [5].

Correggetemi se sbaglio, cosa non improbabile :)

E' tutto molto relativo ...

La "colonna" o la "riga" non sono concetti distinguibili in memoria.

Puoi benissimo allocare sempre 5 puntatori e 4 elementi per puntatore, considerando i primi 5 come "colonne" e i 4 come righe ...

Loading