Ciao Alka,
apro un nuovo post per chiederti un'altra conferma sempre relativa a sti maledetti puntatori e allocazioni di memoria partendo da quello che mi hai detto nelle richieste precedenti.
Se il mio codice contiene GetMem come in questo caso:
//Alloco memoria per contenere il valore di ritorno della funzione da passare al software
GetMem(Result,Length(ResponseBox)+1);
//Copio il valore di ritorno nella variabile che la funzione ritorna
Result := StrPCopy(Result, ResponseBox);
Devo deallocare manualmente la memoria con FreeMem poichè l'allocazione è stata fatta anch'essa manualmente. E fino a qui ci siamo.
Ma se io dovessi usare la forma:
Result := @ResponseBox[1];
oppure
Result := PChar(ResponseBox);
Non sono obbligato a gestire la deallocazione perchè ci pensa già delphi, in fin dei conti non alloco manualmente memoria ma lascio il compito a delphi. E' corretto quello che dico?
Grazie