[TP 7] Problème avec les listes chaînées (error 202)
Bonjour,
d'abord
>J'utilise TP7
>Je débute ^^
Mon problème: ce code ne renvoie pas toujours la même chose:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| type
liste=^mots;
mots=
record
contenu:string;
suiv:liste;
end;
procedure ajoutemot(i:string; var l:liste);
begin
if l=nil then
begin
new(l);
l^.contenu:=i;
end
else begin
ajoutemot(i,l^.suiv)
end
end;
var l:liste;
begin
ajoutemot('yop',l);
writeln(l=nil);
writeln(l^.suiv=nil);
ajoutemot('yep',l);
writeln(l^.contenu);
writeln(l^.suiv^.contenu);
end. |
Ce code, comme vous le constatez, ne prend rien en entrée (j'ai fait ce programme juste pour tester la procédure).
Voici le problème: il n'écrit pas toujours la même chose, et je ne comprend pas pourquoi:
Première éxécution il écrit:
FALSE
TRUE
yop
yep
Deuxième éxécution:
FALSE
FALSE
yop
yep
Troisième éxécution: error 202:stack overflow error :?
La procédure, vous l'aurez compris, sert à ajouter un mot à la liste (chainée) de mots.
Pouvez vous me dire où est l'erreur?
Et tant qu'à faire, pouvez vous me donner une procédure qui marche?
Merci beaucoup
thelinekioubeur