Bonjour,

J'ai un record pour les nombres complexes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?