H2244 Der Zeigerausdruck benötigt kein Initialize/Finalize, aber möglicherweise einen ^-Operator (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Sie haben versucht, finalize auf einen Zeigertyp anzuwenden.


program Produce;

  var
    str : String;
    pstr : PString;

begin
  str := 'Sharene';
  pstr := @str;
  Finalize(pstr);  (*Hinweis: Versuchen Sie nicht, 'str' nachfolgend anzuwenden*)
end.

In diesem Beispiel wird der Zeiger pstr an die Prozedur Finalize übergeben. Dies erzeugt eine Meldung, da Finalize nicht auf Zeiger angewendet werden braucht.


program Solve;


  var
    str : String;
    pstr : PString;

begin
  str := 'Sharene';
  pstr := @str;
  Finalize(pstr^);  (*Hinweis: Versuchen Sie nicht, 'str' nachfolgend anzuwenden*)
end.

Die Lösung besteht darin, den Operator '^' zusammen mit dem übergebenen Zeiger zu verwenden.