PDA

Visualizza la versione completa : [C] allocazione array multidimensionale


Infernal
02-10-2008, 17:38
Se scrivo cosė:

float pippo[][2][64];

e volessi allocare dinamicamente la prima dimensione di pippo... come posso fare?

una cosa del genere avrebbe senso?

pippo[i] = (float**) malloc(sizeof(float*)*2);

Infernal
02-10-2008, 18:37
allora.. sono arrivato a fare questo:

float ***pippo;

pippo = new float**[INC];
for (int i = 0; i<INC;i++)
{
pippo[i] = new float*[2];
pippo[i][0] = new float[64];
pippo[i][1] = new float[64];
}

e funziona... il problema č che non so come allargarlo quando serve....

MrX87
06-10-2008, 00:30
si facendo cosė:


float ***pippo;

e allocando il primo pezzo cosė:



pippo = (float***)malloc(dimensione1*sizeof(float**));

allochi diciamo le righe...poi con un for():


for ( i=0; i<dimensione1; i++ ) {
pippo[i] = (float**)malloc(dimensione2*sizeof(float*));
}

vai ad allocare le colonne per ciascuna riga e hai ottenuto una matrice di puntatori a float...sostanzialmente...e infine con 2 for() -uno per righe uno per colonne- vai ad allocare la 3 dimensione....non sono molto esperto ma penso che si faccia cosė....

Loading