Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2743 connectés 

 


Dernière réponse
Sujet : [C] Comment faire une fusion de plusieurs tableau de donné?
Krueger :jap:
 
Mais sizeof(tab1) ne retourne pas plutôt la taille d'un pointeur de type int *? :confused:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Krueger :jap:
 
Mais sizeof(tab1) ne retourne pas plutôt la taille d'un pointeur de type int *? :confused:
gilou Ah j'ai pigé ce que tu veux faire.
Un truc comme ceci, sans doute:

Code :
  1. int  *final;
  2. int tab1[5];
  3. int tab2[4];
  4. final = (int *) malloc(sizeof(tab1)+sizeof(tab2));
  5. memcopy(final, tab1, sizeof(tab1));
  6. memcopy(final+(sizeof(tab1)/sizeof(int)), tab2, sizeof(tab2));
  7. ....
  8. free(final);


A+,

Alload Oui. Pour le moment j'utilise la même méthode que Krueger, mais je me demandais si il n'en existait pas une plus rapide.
 
J'ai pensé à ça:
int  *final;
int tab1[5];
int tab2[4];
 
final = new int[5 + 4];
CopyMemory(final, &tab1, sizeof(tab1));
final += 5;
CopyMemory(final, &tab2, sizeof(tab2));
 
Est-ce que ça peut marcher?
Krueger Pour [1, 2, 3], [4, 5] et [6, 7, 0] tu veux obtenir [1, 2, 3, 4, 5, 6, 7, 0], c'est ça?
gilou 1er tableau: [a], [b], [c]
c'est un tableau de dimension 3 ou pas pour toi? parce que c'est assez confus ce que tu dis.
A+,
Alload Ce que je voulais dire par [0], ..., [1'] c'était l'index des éléments d'un tableau, pas sa taille.
gilou

Alload a écrit a écrit :

Alors voilà le problème: je possède n tableau de unsigned long  de différentes tailles, et je souhaiterais pouvoir créer un seul grand tableau qui regrouperait toutes les données des petits.
 
Par exemple:
 
_ 1er tableau: [0], [1], [2]
_ 2ème tableau: [0'], [1']
 
_ tableau final: [0], [1], [2], [0'], [1']
 
Je sais que je pourrais facilement faire une copie en faisant: final[0] = tableau1[0]; final[1] = tableau1[1]; ... final[4] = tableau2[1]; mais j'aimerais quelque chose qui permettent de transfèrer tout un tableau dans le tableau final à une position désirée.
 
Voilà, j'espère que vous comprendrez l'idée car je suis souvent assez confus :D
 
Merci.  
 
 




Euh, pas clair ton histoire:
_ 1er tableau: [a], [b], [c]==> taille: a*b*c
_ 2ème tableau: [e], [f] ==> taille: e*f
nom d'elements total pour les deux tableaux: a*b*c + e*f
 tableau final: [a], [b], [c], [e], [f]==> taille a*b*c*e*f ce qui est a priori bien plus grand que le nombre d'elements de tes deux tableaux initiaux.
 
A+,

Krueger Il suffirait de jouer sur les indices de parcours de tes tableaux:
 

Code :
  1. void array_copy(unsigned long * src, unsigned long * dest, int offset, int length)
  2. {
  3.   int i;
  4.   int j;
  5.   for(i = 0, j = offset; i != length; i++, j++)
  6.   {
  7.     dest[j] = src[i];
  8.   }
  9. }


 
Reste à réutiliser cette fonction pour copier tes tableaux dans un seul.

Alload Alors voilà le problème: je possède n tableau de unsigned long  de différentes tailles, et je souhaiterais pouvoir créer un seul grand tableau qui regrouperait toutes les données des petits.
 
Par exemple:
 
_ 1er tableau: [0], [1], [2]
_ 2ème tableau: [0'], [1']
 
_ tableau final: [0], [1], [2], [0'], [1']
 
Je sais que je pourrais facilement faire une copie en faisant: final[0] = tableau1[0]; final[1] = tableau1[1]; ... final[4] = tableau2[1]; mais j'aimerais quelque chose qui permettent de transfèrer tout un tableau dans le tableau final à une position désirée.
 
Voilà, j'espère que vous comprendrez l'idée car je suis souvent assez confus :D
 
Merci.

 

[jfdsdjhfuetppo]--Message édité par Alload--[/jfdsdjhfuetppo]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)