Avatar billede krismort Nybegynder
27. juni 2002 - 17:45 Der er 6 kommentarer og
1 løsning

struct til char array?

Hej
Hvordan konveterer jeg min struktur til et char array og omvendt i c++?

Kristian
Avatar billede kamikaze Nybegynder
27. juni 2002 - 20:30 #1
Det kommer an på hvordan din struct ser ud. Prøv at poste den her.
Avatar billede chries Nybegynder
28. juni 2002 - 10:57 #2
struct T
{
    int i;
    char x[128];
};

int main(int argc, char* argv[])
{
    T var;

    memset( &var, 0x00, sizeof(T) );

    char *p = reinterpret_cast<char*>(&var);


    p[0] = 10; // LSB i "i", pga little endian
//    p[1] = ...

    return 0;
}
Avatar billede chries Nybegynder
28. juni 2002 - 10:59 #3
du skriver bare samme rækkefølge i som som du læser ud.

p[sizeof(T)-1] == sidste element (sizeof(T) == antal bytes)
Avatar billede krismort Nybegynder
29. juni 2002 - 14:30 #4
cries: Er det muligt at conveterer min string tilbage til min struktur med reinterpret_cast?
Avatar billede krismort Nybegynder
29. juni 2002 - 15:04 #5
jeg har prøvet med
T *q = reinterpret_cast<T*>(&p);
men det virker ikke som om det fungerer ordentligt
Avatar billede krismort Nybegynder
29. juni 2002 - 15:06 #6
kamikaze: Det som er problemet med min/mine strukturer er at de er forskellige... det eneste der er ens for dem er at de har et præfix i int form i begyndelsen.
Avatar billede krismort Nybegynder
29. juni 2002 - 15:18 #7
Ahh det hjalp at bruge
T *q = reinterpret_cast<T*>(p);
eller
memcpy(&var, p,  sizeof(T));
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester