Allocation et désallocation de pointeurs dans une fonction
Bonjour,
J'ai un record pour les nombres complexes :
Code:
1 2 3 4 5 6
|
type
complexe=record
re,im:real;
end;
pcomplexe=^complexe; |
Ensuite je fais une fonction pour ajouter 2 nbres complexes, 2 solutions :
- Méthode 1 :
Code:
1 2 3 4 5 6
|
function ajout1(c1,c2:pcomplexe):pcomplexe;
begin
ajout1^.re:=c1^.re+c2^.re;
ajout1^.im:=c1^.im+c2^.im;
end; |
- Méthode 2 (plus propre je pense) :
Code:
1 2 3 4 5 6 7 8 9 10
|
function ajout2(c1,c2:pcomplexe):pcomplexe;
var
temp:pcomplexe;
begin
new(temp);
temp^.re:=c1^.re+c2^.re;
temp^.im:=c1^.im+c2^.im;
ajout2:=temp;
end; |
Le problème : comment faire la désallocation du pointeur temp dans la méthode 2 ? Est-ce que l'alloc-désalloc est automatique dans la méthode 1 ?
Quelle est la meilleure solution ?