Vielen dank für den hinweis, nun funktioniert es wie es soll.
(Für alle die sich für die lösung interessieren)
Delphi-Quellcode:
function DoSomething: Pointer;
var PString: ^String;
begin
New(PString);
PString^ := 'foobar';
Result := PString;
end;
procedure TForm1.Button1Click(Sender: TObject);
var PString: ^String;
begin
PString := DoSomething;
ShowMessage(PString^);
Dispose(PString);
end;