Konvertierung Integer in 2-Byte-Wert / Erzeugen eines Streams
-
Hallo!
Ich bin grad wohl etwas vernagelt, aber ich komm grad nicht weiter.
Zur Erzeugung eines Socket-Streams will ich einen Integer-Wert an den Anfang eines char-Pointers (also an die Speicherstelle) speichern (danach kommt dann die Nachricht selbst).
Die Frage ist, wie ich das anstelle?
buffer=(char*) malloc(length+strlen(nachricht));
Und dann?
Dass dann das hier folgt, weiß ich ja wieder...
buffer+=2; strcpy(buffer,nachricht);
Fehlen nur noch die 2 Bytes mit dem Integerwert am Anfang.
Wäre für eine Antwort sehr dankbar...
- stevieboy -
-
machs mit memset
Speicher den int-Wert in ein char-Array und dieses setzt du dann an den Anfang
der Nachricht!
-
Hö?
Meinst mit memset die zwei Bytes einzeln kopieren?
Dann doch lieber memcpy
oder
buffer[0] = (my_int & 0xff00) >> 8;
buffer[1] = (my_int & 0xff);
-
char* nachricht = "ich bin ein string"; int length = sizeof(int); char* buffer =(char*) malloc(length+strlen(nachricht)+1); *(int*)buffer=1234; strcpy(buffer+length,nachricht); printf("%d %s\n", *(int*)buffer, buffer+length);
Output: 1234 ich bin ein string