Zeiss
BIOS-Overclocker(in)
Servus miteinander,
irgendwie habe ich gerade einen Knoten im Hirn. Hier erstmal der Code:
Ich habe ein char array (buffer[]), mit abcdefgh als Inhalt, diesen caste ich nach test_struct, klappt auch so weit, der Compiler wirft keine Fehler oder Warnings.
Nun, mein Problem ist aber die Ausgabe, die sieht nämlich so aus:
Ich hätte jetzt erwartet, dass
sind, so wie die Feldlängen im Struct. Oder habe ich einen Denkfehler?
Getestet mit VS2013 und gcc.
irgendwie habe ich gerade einen Knoten im Hirn. Hier erstmal der Code:
Code:
#include "stdafx.h"
struct test_struct {
char src[2];
char dst[2];
char msg[4];
};
char buffer[] = "abcdefgh";
int main(int argc, _TCHAR* argv[])
{
struct test_struct *tmp_pckt = (struct test_struct *) buffer;
printf("src: %s\n", tmp_pckt->src);
printf("dst: %s\n", tmp_pckt->dst);
printf("msg: %s\n", tmp_pckt->msg);
int i = 10;
return 0;
}
Ich habe ein char array (buffer[]), mit abcdefgh als Inhalt, diesen caste ich nach test_struct, klappt auch so weit, der Compiler wirft keine Fehler oder Warnings.
Nun, mein Problem ist aber die Ausgabe, die sieht nämlich so aus:
Code:
src: abcdefgh
dst: cdefgh
msg: efgh
Ich hätte jetzt erwartet, dass
Code:
src: ab
dst: cd
msg: efgh
Getestet mit VS2013 und gcc.
Zuletzt bearbeitet: