funktionsaddresse nach void* casten
-
hallo!
ich muss gerade addressen von funktionen in einem container speichern und konvertiere sie dazu in void*-zeiger. eigentlich ist das verboten. funktioniert das wenigstens oder gibt es da einen anderen weg?
ps: es sind alles c-funktionen
-
kaiser von china schrieb:
ps: es sind alles c-funktionen
Dann sollte es funktionieren. Wenn du sicher gehen willst, dass das funktioniert, dann schau nach, dass der sizeof-Operator für beide Pointer die gleiche größe liefert. Dann sollte das klappen.
-
eigentlich ist das verboten
Wär mir neu... du musst sie einfach wieder zurück- casten.
Edit: Ok, nach dem Beitrag von ProgChild scheint es wirklich nicht sehr sauber.ich muss gerade addressen von funktionen in einem container speichern
Warum void*? Mache doch ein Array (oder, da Du ja ins C++ Forum postest, ein std::vector o.ä.) und speichere die Function Pointer.
Simon
-
ProgChild schrieb:
Dann sollte es funktionieren. Wenn du sicher gehen willst, dass das funktioniert, dann schau nach, dass der sizeof-Operator für beide Pointer die gleiche größe liefert. Dann sollte das klappen.
danke. werde ich machen.
Warum void*? Mache doch ein Array (oder, da Du ja ins C++ Forum postest, ein std::vector o.ä.) und speichere die Function Pointer.
ja, aber welchen typ soll ich da nehmen? void*()(size_t) (std::malloc) oder void()(void*) wie bei std::free?
-
ok problem hat sich erledigt.