(*(unsigned char *)
-
Hallo zusammen,
kann mir jemand,
diese zeile :
(*(unsigned char *)x) = 0x00;reklären.
Ich verstehe diese "doppel sternchen" geschicht nicht.
Danke
Gruß
Thomas
-
(unsigned char
ist ein Cast, mit dem zieltyp unsigned char *.
(unsigned char *)x ist also ein Zeiger auf ein unsigned char. Wenn ich einem Zeiger einen Stern voranstelle bekomme ich dessen Wert.
Vielleicht wird es so klarer:
unsigned char * tmp = (unsigned char *)x; *tmp = 0x00;
-
Zuerst wird x in einen unsigned char pointer gecastet.
Dann wird wiederum der Pointers auf 0x00 gesetzt.
-
Helium schrieb:
Wenn ich einem Zeiger einen Stern voranstelle bekomme ich dessen Wert.
nö, sondern das, was in dem speicher steht, worauf der zeiger zeigt.
-
Arno Nyhm schrieb:
Dann wird wiederum der Pointers auf 0x00 gesetzt.
nö, das worauf der pointer zeigt wird auf 0 gesetzt.
-
gun dog schrieb:
Helium schrieb:
Wenn ich einem Zeiger einen Stern voranstelle bekomme ich dessen Wert.
nö, sondern das, was in dem speicher steht, worauf der zeiger zeigt.
mein ich ja