Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#1 Le 04/07/2013, à 10:56

kboo

C++ construction bit par bit

Bonjour
Je cherche un moyen de construire un tableau de type char* en concaténant des unsigned char des unsigned long etc... je ne sais pas trop comment m'y prendre car ayant du char comment concaténer d'autre type dedans en préservant la taille des éléments:

ça serai un truc du genre:

char* solution;
unsigned char element1 = 0xAA;
unsigned long element2 = 0xFFFFFFFFFFFFFFFF; //µP en 64bits
solution = element1 | element2; // solution = 0xAAFFFFFFFFFFFFFFFF

Je suppose qu'il faut faire une surcharge de l'opérateur | mais comment faire pour ne pas avoir de "trou" vu que les types sont différants
Je ne peux pas faire d'Union car c'est pas toujours les même type d'éléments ou nombre d'éléments.

Help!
merci d'avance!

Dernière modification par kboo (Le 04/07/2013, à 11:03)

Hors ligne

#2 Le 04/07/2013, à 11:24

pingouinux

Re : C++ construction bit par bit

Bonjour,
Le pointeur solution doit être alloué. Tu peux ensuite utiliser memcpy pour copier les éléments un par un.

Ajouté :
Voici une façon de faire (assez rudimentaire) :

solution = (char*)malloc( sizeof(element1)+sizeof(element2) )
p = solution;
memcpy( p, &element1, sizeof(element1) ); p += sizeof(element1);
memcpy( p, &element2, sizeof(element2) ); p += sizeof(element2);

Dernière modification par pingouinux (Le 04/07/2013, à 12:48)

Hors ligne

#3 Le 04/07/2013, à 12:53

kboo

Re : C++ construction bit par bit

Merci pingouinux,
ça me parait bien smile par contre y a t'il une méthode plus "C++" car c'est très orienté C (malloc) hmm
merci encore

Hors ligne

#4 Le 04/07/2013, à 12:59

pingouinux

Re : C++ construction bit par bit

Tu peux faire l'allocation comme tu veux. Je ne suis pas un spécialiste du C++.

Hors ligne

#5 Le 04/07/2013, à 15:17

myrddin772

Re : C++ construction bit par bit

Une bonne piste se trouve ...


"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows et Ian Parberry
Si tu ne sais pas : demande, si tu sais : partage !

Hors ligne

Haut de page ↑