Bonjour à tous, j'ai un problème que je ne parviens pas à résoudre.
J'essaye de faire un tableau de pointeur sur des listes contenant diverses informations.
Ce code compile mais je recois une erreur du type EAccessViolation avec comme message : ' Violation d'accès à l'adresse .... '
Voici le code :
la procedure resetTab qui sert à initialiser chaque case du tableau à NIL :
Et le code servant à placer une information dans la liste :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 procedure resetTab(var tab:Ttab); var i : integer; begin for i:=0 to high(tab) do tab[i]^.trieSvt:=nil; end;
Voyez-vous un problème d'accès dans ce code ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
31
32
33
34 procedure placeMotTrie(mot,vraiMot:string;indice:integer;tab:Ttab); var i,cour,nv:Pliste; begin //Creation de la cellule à ajouter à la liste. nv:=new(PListe); nv^.mottrie:=mot; nv^.trieSvt:=NIL; nv^.Pcellule:=NIL; //Si c'est la première insertion dans le tableau à cet indice. if tab[indice]^.trieSvt=Nil then tab[indice]^.trieSvt:=nv //Sinon parcourir jusqu'à trouver l'emplacement correct. else begin i:=tab[indice]; cour:=tab[indice]; while i^.trieSvt<>NIL do begin cour:=i^.trieSvt; i:=cour; end; //ajouter la cellule. cour^.trieSvt:=nv; end; end;
Merci d'avance.
Partager