Bien le bonjour ,
Pour commencer je vais vous montrer un cours aperçu de mon code pour mieux comprendre mon problème :
Specification :
Il s'agit donc d'une pile tout ce qu'il y'a de plus commun que je déclare avec une procédure pour ajouter un élément un élément au dessus.
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
35
36
37
38
39
40 package Piles_Dynamiques is Mémoire_Insuffisante : exception; Pile_Vide : exception; type T_Info is access String; type T_Elément; type T_Lien is access T_Elément; type T_Elément is record Info : T_Info; Suivant : T_Lien; end record; -- Insère Info au sommet de la pile -- Lève Mémoire_Insuffisante si l'opération s'avère impossible procedure Empiler (Pile : in out T_Lien; Info : in T_Info); ..... Corp : package body Piles_Dynamiques is procedure Empiler (Pile : in out T_Lien; Info : in T_Info) is Courant : T_Lien := Pile; Suivant : T_Lien; begin if Courant = null then Courant := new T_Elément'( Info , null); else Suivant := Courant ; Courant := new T_Elément'(Info,Suivant); end if; Pile := Courant ; exception when Storage_Error => raise Mémoire_Insuffisante; end Empiler; .....
Maintenant quand je teste ma procédure Empiler , une exception Storage_Error est lévée , je comprend vraiment pas pourquoi. Pourtant c'est pas la première fois que je manie les pointeurs ....
Voilà tout , j'espère vraiment que je trouverai mon héros le plus vite possible , parce que ça m'énerve un peu de rester bloquer sur un truc aussi simple ....
Merci de vous être intéresser à mon problème et pour vos réponses .
N'hésitez pas à demander si vous le pensez utile plus de détails.
Partager