Renvoi d'une variable locale PChar
Remonter à Conversions de chaînes en PChar
Une erreur courante quand vous utilisez le type PChar Delphi est de stocker une variable locale dans une structure de données ou de la renvoyer comme résultat. Une fois votre routine achevée, le PChar
disparaît car c'est un pointeur mémoire et non une copie de chaîne utilisant le comptage de références. Par exemple :
function title(n: Integer): PChar;
var
s: string;
begin
s := Format('title - %d', [n]);
Result := PChar(s); // A NE PAS FAIRE
end;
Cet exemple renvoie un pointeur sur une donnée chaîne qui est libérée à l'achèvement de la fonction title
.