000
08.12.2006, 17:39 Uhr
~raZe
Gast
|
Hallo Leute.
könnte mir jemand sagen warum die Speicheradresse des time_t um 4 Byte verschoben ist? Ich benutze Microsoft Visual Studio 8.
C++: |
struct out_header { char mode; char cont; char tmp[2]; int len; char name[20]; int inst; int param; time_t time; } *ptr_out_header;
|
C++: |
//Zuweisung des Speicherbereichs, wo die Daten liegen. ptr_out_header = (struct out_header *) data;
...
// Mich verzweifeln lassende Kontrollausgaben: ptrc = &ptr_out_header->mode; printf("ADRESSE (ptr_out_header->mode): %x (%c)\n", ptrc, ptr_out_header->mode); ptrc = &ptr_out_header->cont; printf("ADRESSE (ptr_out_header->cont): %x (%c)\n", ptrc, ptr_out_header->cont); ptrc = &ptr_out_header->tmp; printf("ADRESSE (ptr_out_header->tmp): %x (%s)\n", ptrc, ptr_out_header->tmp); ptrc = &ptr_out_header->len; printf("ADRESSE (ptr_out_header->len): %x (%d)\n", ptrc, ptr_out_header->len); ptrc = &ptr_out_header->name; printf("ADRESSE (ptr_out_header->name): %x (%s)\n", ptrc, ptr_out_header->name); ptrc = &ptr_out_header->inst; printf("ADRESSE (ptr_out_header->inst): %x (%d)\n", ptrc, ptr_out_header->inst); ptrc = &ptr_out_header->param; printf("ADRESSE (ptr_out_header->param): %x (%d)\n", ptrc, ptr_out_header->param); ptrc = &ptr_out_header->time; printf("ADRESSE (ptr_out_header->time): %x (%d)\n", ptrc, ptr_out_header->time);
|
und as liefert mir leider:
Code: |
ADRESSE (ptr_out_header->inst) 47645c (208) ADRESSE (ptr_out_header->param) 476460 (123) ADRESSE (ptr_out_header->time) 47646[b]8[/b] ([schwachsinnige Sekunden seit 1970])
|
Ich verstehe einfach nciht, warum time nicht auf der 476464 statt 8 liegt... leider war es mit einer alten Version des Programms noch auf der 4 und der Server, der die Daten schickt sendet den Zeitstempel noch immer an dieser Position... und da brauche ich die auch... hat sich vielleicht c-seitig irgend etwas geändert?
HILFE MfG raZe
mod edit: BENUTZE DIE BOARD TAGS SELBER Dieser Post wurde am 08.12.2006 um 21:44 Uhr von Pablo editiert. |