On 10 mar, 11:48, Anthony Gelibert <Tony3...@gmail.com> wrote:
> procedure Copie_Liste(LC1: in adresse; LC2 : out adresse) is
> ElCourLC1 : adresse := LC1;
> ElCourLC2 : adresse;
> begin
> -- Test si LC1 n'est pas vide
> LC2 := null;
> if (LC1 = null) then return; end if;
> -- Place un element fictif au départ
> Allouer(LC2);
> ElCourLC2 := LC2;
> -- Boucle sur la liste LC1
> while (ElCourLC1 /= null) loop
> -- Creation d'un nouvelle element
> Allouer(ElCourLC2.suiv);
> ElCourLC2 = ElCourLC2.suiv;
> -- Il me semble que c'est la syntaxe
> ElCourLC2.all = <ElCourLC1.el,null>;
> ElCourLC1 = ElCourLC1.suiv;
> end loop;
> -- Suppression du fictif et retour de la valeur réelle
> ElCourLC2 := LC2.Suiv;
> Liberer(LC2);
> LC2 := ElCourLC2;
> end;
>
> Voila il me semble que c'est bon, modulo peut-être quelques erreurs de
> syntaxe...
> J'espere avoir pu t'aider et que c'est juste...
>
> Anthony
Merci, ca marche, j'ai remplacé
ElCourLC2.all = <ElCourLC1.el,null>; par
liste2.el := liste1.el;
liste2.suiv := null;
et j'ai enlevé le liberer(lc2) en fin.