einfach den pointer als result zurückgeben.
Code: Alles auswählen
Procedure MyAllocateMemory(Size)
*Pointer = AllocateMemory(Size)
ProcedureReturn *Pointer
EndProcedure
*Memory = MyAllocateMemory(1024)
If *Memory
PokeS(*Memory, "Test")
Debug PeekS(*Memory)
FreeMemory(*Memory)
EndIf
bzw da AllocateMemory() sowieso einen pointer zurückliefert, kannst du es auch so schreiben:
Code: Alles auswählen
Procedure MyAllocateMemory(Size)
ProcedureReturn AllocateMemory(Size)
EndProcedure
das *Pointer.b, *Pointer.l etc. fiasko kannst du dir sparen, da es sowieso ignoriert wird. auf einem 32bit OS wird ein pointer immer 4byte sein, egal was du dahinter schreibst. also wenn du *Pointer.q schreibst, wird der pointer trotzem als long behandelt, deswegen ist es sinnlos bei pointern einen datentyp anzugeben.
c ya,
nco2k