wenn du es so machst, wie du es wolltest, dann mußt du auch für _c^ den Speicher reservieren, wo _c hinzeigt ... und in diesem Speicher ist dann deine Variable, wo du den internen Objektzeiger drin abspeichern wolltest.
hierwird der interne Objektzeiger in den Pointer cekastet und umgekehrt
Delphi-Quellcode:
TMyClass(myPointer) = TMyClass.Create();
// oder
myPointer = PMyPointer(TMyClass.Create());
// bzw.
myObject := TMyClass.Create();
myPointer = PMyPointer(myObject);
// und das Auslesen war schon ok so
TMyClass(myPointer).machwas();
und du wollstes in den Speicher, auf welchen dein Pointer zeigt, das Objekt ablegen
und diesen Speicher mußt du erst irgendwo reservieren.