Renvoi d'une variable locale PChar

De RAD Studio
Aller à : navigation, rechercher

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.

Voir aussi