Pb d'optimisation

pipow1 Messages postés 1 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 8 juin 2005 - 8 juin 2005 à 10:48
Pamaury Messages postés 341 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 17 juin 2008 - 8 juin 2005 à 16:09
Bonjour à tous


Je recherche la méthode la plus rapide pour copier un tableau 3D dans
un tableau 1D, en évitant bien sur de passer par un triple boucle. Peut
être que la fonction memcpy peut m'aider mais je n'ai pas réussi à
l'exploiter efficacement. Quelqu'un peut il m'aider ?
dof

1 réponse

Pamaury Messages postés 341 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 17 juin 2008 3
8 juin 2005 à 16:09
alors je suis pas sûr de bien comprendre:

// par exemple:

int tab3D[A][B][C];// alloué statiquement: i.e: pas de malloc ni new

int tab1D[A*B*C];


memcpy((void *)tab1D,(void *)tab3D,sizeof(tab3D));



si le tableau 3D est alloué dynamiquement il faut faire 2 boucles:



int ***tab3D;

tab3D=new int**[A];

for(int i=0;i<A;i++)

{

tab3D[i]=new int *[B];

for(int j=0;j<B;j++)

{

tab3D[i][j]=new int[C];

}

}



int *tab1D=new int[A*B*C];

int *p=tab1D;



for(int i=0;i<A;i++)


{

for(int j=0;j<B;j++)

{

memcpy((void *)tab1D,(void *)tab[i][j],sizeof(int)*C);

tab1D+=C;

}

}





çà devrait marcher(j'ai pas testé)
A m a u r y
0
Rejoignez-nous