Null Problemo ...

retn

Grünschnabel
Servus Leute,

hab ein kleines Anfängerproblem irgendwie Oo.
Hoffe auf Hilfe, ich verratz an dem Problem. Google und SuFu konnten mir bislang auch nicht helfen.

Und zwar folgendes:

Code:
	char *s = "\x51\xF7\x00\xFF";

	int d[4];
	for (int i = 0; i < strlen(s); i++) {

		printf("%x\n",  (s[i] & 0xFF));
	}

Wieso macht die 0x00 ein Problem
Ich krieg die Null weder in ein Char Array noch in ein Integer Array.
Kommt nur Crap bei rum... wieso? Was kann man dagegen machen?

Greetz
retn
 
Hallo retn,

ich könnte mir vorstellen, dass Deine Eingabe "\x00" als als terminierendes Zeichen des Strings angesehenen wird!!

Gruß
Klaus
 
Hallo Klaus,

es wird 100% als ein terminierendes Zeichen erkannt.
Zumindest sollte das so in einem char Array sein, aber warum kann ich son Zeichen nicht als Integer in ein Integer Array plastern.

Und vor allem habe ich das Problem auch bei der winsock.recv Funktion.In meinem recv Buffer stehen auch 0x00'n aber ohne das das recv Array terminiert wird. :(

Greetz
retn
 
Zuletzt bearbeitet:
Hi retn,

versuchs mal so:

Code:
d[i] = (int)s[i];

da füllt Dir die Werte zumindest bis zum 0x00!

Dein Problem war wohl, dass Du mit (s)printf nicht auf int-VARs zugreifen kannst

Gruß
Klaus

EDIT: ach so, vermutlich liefert Dir ja Dein strlen(s) nicht die gewünschte 4, sondern nur 2 (bis zum 0x00) ;-)
 
Zuletzt bearbeitet:
thx für die Antwort.

Nur, das Beispiel, was ich angegeben habe, macht dies auch schon. Mir gehts theo. nur um die Null :).

Greetz
retn
 
Hi retn,

siehe hierzu auch mein EDIT im letzten Beitrag!

Ich hab's eben mal schnell getestet und die wird Schleife aus besagtem Grund nur zweimal durchlaufen! :)

tschüss
Klaus
 
Hallo,

das reinschreiben ist nicht das Problem. Allerdings kann du dann nicht mit Zeichenkettenfunktion (strlen) arbeiten, weil diese bei der ersten 0 abbrechen. Da muss die Länge des Buffers anders bestimmt, z.B. über einen zusätzlichen Parameter mitgeführt, werden.

Gruß
MCoder
 
Hallo vlf_freak, Coder

thx an euch. sag ja Anfängerproblem >.< xD

Greetz
retn
 
Zuletzt bearbeitet:
Zurück