begin process at 2012 05 30 01:35:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Linux

 > 

Autre

 > 

probleme affectation structure


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme affectation structure

lundi 11 décembre 2006 à 14:15:38 | probleme affectation structure

cimcim

Bonjour à tous...
Je suis en train d'écrire un décodeur de table sdt (api dvb), mais j'ai un souci lors de l'affectation de ma structure...
En gros, ma structure ressemble à ça :
typedef struct {
    u_char    table_id            : 8;
    u_char    section_syntax_indicator    : 1;
    u_char                    : 3;
    u_char    section_length_hi        : 4;
    u_char    section_length_lo        : 8;
    u_char    transport_stream_id_hi        : 8;
    u_char    transport_stream_id_lo        : 8;
    u_char                    : 2;
    u_char    version_number            : 5;
    u_char    current_next_indicator        : 1;
    u_char    section_number            : 8;
    u_char    last_section_number        : 8;
    u_char    original_network_id_hi        : 8;
    u_char    original_network_id_lo        : 8;
    u_char                    : 8;
} sdt_t;
Et, lorsque je la créé, je l'affecte au passage avec ce que j'ai dans un buffer (char * buf)... (lecture directe dans le demuxer, ce que j'ai dans mon buffer correspond à ce que j'attend).
création/affectation :
sdt_t enteteSDT = {buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], buf[9], buf[10]};
Seulement voila... Tout se passe bien (compil, linkage et tout), mais mon buf[1] ne passe pas...
En gros, buf[0] est bien mis dans table_id, buf[1] disparait, et mon 1er octet de buf[2] se retrouve dans section_syntax_indicator...
Je suis obligé d'affecter ma structure en envoyant 2 fois buf[1], mais je ne vois pas pourquoi...
Pour info, buf[1] contient "f2" (en hexa), et il ne me semble pas que ça soit une valeur spéciale (genre \r, \n ou autre).
Ce qui est en bleu est du copié/collé de ma source.. Si il faut d'autres morceaux, merci de me le dire.
Merci
lundi 11 décembre 2006 à 17:29:42 | Re : probleme affectation structure

cimcim

Réponse acceptée !
Bon, c'est bon...
En fait il m'affectais octet par octet, au lieu de bit par bit...
Mais j'ai trouvé une parade !!!!
    u_char temp[11] = {buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], buf[9], buf[10]};
    sdt_t &enteteSDT = *(sdt_t*)temp;

Et ca marche !!!




Cette discussion est classée dans : id, char, section, structure, buf


Répondre à ce message

Sujets en rapport avec ce message

Taille de ma structure [ par crocejf2000 ] Salut a tous, J'ai un tres gros probleme qui me bloque toute mon avancé dans mon prog : j'ai une structure : typedef struct{ unsigned short Locate; ch sockets: envoi d'une structure... [ par julien20vt ] Maintenant que j'ai réussi à envoyer des char, des int[], je voudrais envoyer un structure faite maison.Le pb est que le socket n'accepte que les char Comment caster un structure en char *. [ par julien20vt ] Tout est dans le titre, j'ai ma petite structure et j'ai besoin de la caster, mais comment faire ????Merci. Cherchez l'erreur... [ par andrealphus ] 4ndr&@lphu$Voilà mon code :LRESULT CALLBACK dialogProc4(HWND hDlg, UINT Umess, WPARAM wParamD, LPARAM lParamD){ int m_IdTimer=0; // ID du Problème avec char* [ par Wiwi ] Bonjour tt le monde, j'ai une tite pro (bidon) avec ce morceau de programme. Lors de sa compilation il n'y a aucune erreur, par contre lors de son exé GetPrivateProfileString [ par youpiyoyo ] si par exemple je fais cachar* pmem,*SECTION="une section"; pmem = (char*) HeapAlloc(hheap, 0, 4096); // devrait suffire if(!pmem) return NULL; // f Liberation de la mémoire [ par Xentor609 ] Salut,Voici le code qui me pose un pitit probleme:char* fonction(){char* buf=new char[MAX_BUF];//traitement du bufreturn buf;}void MyFunc()< Problème d'effacement de tableau en C++ (sans MFC) [ par Shad0w ] Voilà, mon code copie le contenu d'un fichier dans une edit :------------- char fil[LEN]; OPENFILENAME ofn; ZeroMemory(&ofn, sizeof(OPENFI Structure dans une classe [ par briscard ] Hello world!!A ton le droit de passer une structure du type: struct { char *Gamma = new char[3]; char *Phase = new char[3]; }donnee;dans u pointeur sur une structure [ par xc78370 ] Bonjour, Voila mon probleme. si quelqu'un a une idée, mrci d'avance.j'ai plusieurs structures, du style :---------------------------------------struct


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales