PVOID
-
Ja kann ich.
Ist der simpelste Datentyp den es gibt.
Kann allee möglichen Daten speichern. Musst aber immer casten
-
Der Typ kann nur einen Zeiger auf alle möglichen Daten speichern, aber nicht die Daten selber.
-
@überzeugt?
Wieso nicht die Daten?
PVOID pv = (PVOID)5;
-
Dann ist aber 5 die Adresse, also 0x00000005. Oder?
-
bzw. wie kommt man dann wieder an die Daten, also die 5, ran?
so schonmal nicht.
PVOID pv = (PVOID)5; int i = *(int*)pv;
-
*lol*
Lern mal CPVOID pv = (PVOID)5;
int i = (int)pv;
-
Na ja, hatte es bis jetzt auch rausgefunden. Aber irgendwas sagt mir das man das normalerweise nicht so macht.
Das geht jetzt zufällig mit int, da wird aber einfach nur die Adresse verkürzt. Aber versuche mal PVOID einen double zuzuweisen.
PVOID pv = (PVOID)5.4;
Geht zum Beispiel nicht mehr. Sowas macht man doch nicht wirklich, oder?
Bei int i = (int)pv; kriegt man auch ne Warnung (VC++ 7):
'Typenumwandlung' : Zeigerverkuerzung von 'PVOID' zu 'int'
-
PVOID müsste glaub ich 32-Bit entsprechen wenn ich mich nicht irre, ein double aber größer sein.
-
nö, das kommt deswegen weil er aus einem Double-Wert keine Speicheradresse bilden kann.
*lol*
Lern mal CDas solltest du lieber mal lernen, wenn du sowas vorschlägst.
-
@Harald
Ich habe NIE geschrieben, dass man double-Werte so konvertieren kann!
Ausserdem wollte ich nur zeigen, dass es durchaus unter gewissen Umständen möglich ist, direkt die Daten innerhalb eines PVOID zu speichern!
Muss ja nicht bedeuten, dass es immer möglich ist!
P.S. Seit Win64 kann man übrigens auch double in ein PVOID speichern![ Dieser Beitrag wurde am 03.02.2003 um 08:47 Uhr von RenéG editiert. ]