Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2511 connectés 

  FORUM HardWare.fr
  Programmation
  Ada

  [ADA] Erreur d'execution | liste chainée => soucis de pointeur ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ADA] Erreur d'execution | liste chainée => soucis de pointeur ?

n°749294
c0wb0y
:d
Posté le 02-06-2004 à 18:55:58  profilanswer
 

/!\ je sais que les demandes de corrections d'exo sont prohibées ici, vous verrez que j'ai deja bien taffé ce projet, mais la je me heurte a des erreurs que je ne parviens pas a resoudre, de l'aide m'est donc necessaire, merci :) /!\
 
 
Alors, tout d'abord, je vous recommande de recuperer ma source, un copier coller de 400 lignes ca serait pas terrible :-/
 
http://hellien.free.fr/projet_ada/puant.adb :)
 
Si vous avez compilez et executé quelques fois le programme, vous remarquerez que de maniere aléatoire (mais on va dire a 65% des executions) il plante sur une erreur :

Code :
  1. "raised CONSTRAINT_ERROR : puant.adb:358 invalid data"


L'arrivée de cette erreur est donc aléatoire, je ne la comprends absolument pas :-/
Le probleme vient du couple de procedure Recherche_paire / Fonction Compare_carte
Peut etre qu'un des pointeurs de parcours que j'utilise est a null (mais dans quel cas?) et il tente de faire un test (et encore, ca me parait bizzare par rapport au fait qu'il plante a la ligne 358, un case carte1.couleur alors qu'il passe le teste precedant carte1.figure qui pourtant ne devrait pas existait si le pointeur de la carte passé en parametre était a null (dsl si ca parait embrouillé mais en executant vous comprendrez ;) ).
j'ai relu 30 fois les procedures réécris 2 fois la procedure recherche paire mais je bloque, aucune idée de ce qu'il se passe :(
 
de l'aide ? :]
merci ;)
 
 
PS : le projet était pour hier ^^"

mood
Publicité
Posté le 02-06-2004 à 18:55:58  profilanswer
 

n°749298
nraynaud
lol
Posté le 02-06-2004 à 19:01:16  profilanswer
 

nan, comme dirait coluche, c'est la couleur qui est pas dans le manuel.
 
Regarde d'où vient cette carte et s'il n'y a pas un problème lors de l'affectation de sa couleur.


---------------
trainoo.com, c'est fini
n°749314
c0wb0y
:d
Posté le 02-06-2004 à 19:09:54  profilanswer
 

bah en fait, ca ne plante pas sur des affectation de couleur, dans la procedure compare_carte, je regarde si les 2 cartes passée en parametre forme une paire de carte, donc il n'ya que des test  
 
if carte1.figure=carte2.figure then --ce test ne pose pas pb
        case carte1.couleur is --c'est la dessus que ca plante, mais je comprends pas pourquoi puisque si le test precedant est bon, ca veut dire que ma carte est valide, de plus, j'ai des procedures qui m'affiche toute mes cartes du jeu, et aucune carte ne pose probleme =/
 
je ne comprends toujours pas :[

n°749320
nraynaud
lol
Posté le 02-06-2004 à 19:12:48  profilanswer
 

oui, ça plante au moment où il lit la couleur.
 
Il a trouvé une couleur qui n'est pas dans ton énumération et il a pêté un plomb, d'ou ma remarque te demandant de faire gaffe à d'où vient ta couleur.


---------------
trainoo.com, c'est fini
n°749321
c0wb0y
:d
Posté le 02-06-2004 à 19:13:59  profilanswer
 

ha oki :-/
 
je vois pas vraiment dans quelle situation la couleur foire, c'est bizzare, vais relire encore ma source  :ange:  
(je pense que bientot j'vais pouvoir la réciter par coeur  :lol: )

n°749351
c0wb0y
:d
Posté le 02-06-2004 à 19:24:41  profilanswer
 

j'ai ajouter une ligne pour afficher la carte1 dans la procedure compare_carte apres le test "if carte1.figure = carte2.figure then"
 
ce coup ci ca plante a la ligne 71 ..... procedure affiche_carte => sur la ligne  "case carte.couleur"
 
le probleme est donc ce que tu as dit, sa resolution n'est pas encore a ma portée puisque je ne comprends pas encore d'ou vient le probleme, c'ets bizzare :(

n°749363
nraynaud
lol
Posté le 02-06-2004 à 19:28:27  profilanswer
 

c0wb0y a écrit :

j'ai ajouter une ligne pour afficher la carte1 dans la procedure compare_carte apres le test "if carte1.figure = carte2.figure then"
 
ce coup ci ca plante a la ligne 71 ..... procedure affiche_carte => sur la ligne  "case carte.couleur"
 
le probleme est donc ce que tu as dit, sa resolution n'est pas encore a ma portée puisque je ne comprends pas encore d'ou vient le probleme, c'ets bizzare :(

en fait, c'est probablement ton pointeur qui est à la rue, mais j'ai pas trop le temps de regarder.


---------------
trainoo.com, c'est fini
n°749376
c0wb0y
:d
Posté le 02-06-2004 à 19:34:19  profilanswer
 

ce que je ne comprends pas c'ets  :  
 
Si mon pointeur envoie une mauvaise donnée a ma procedure, alors dans Compare_carte, le test "if carte1.figure ...." devrait echouer, donc ==> end if et on sort, pas de plantage.
 
Or ce test fonctionne, donc ca veut dire que mon pointeur m'a bien envoyé au moins la donnée carte1.all.carte.figure, et je ne vois pas pourquoi la donnée carte.couleur aurait été perdu pendant le passage de parametre (ou meme ailleur en fait :x )
Honnêtement ce probleme me depasse, ma mauvaise fois me pousserait a dire que c'est un probleme venant du langage  :ange:  :D

n°749572
c0wb0y
:d
Posté le 02-06-2004 à 21:24:48  profilanswer
 

:bounce:  
 
personne n'aurait une idée de solution ? Je seche la :-/


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Ada

  [ADA] Erreur d'execution | liste chainée => soucis de pointeur ?

 

Sujets relatifs
refresh et formulaire (liste deroulante)J'aimerai faire une liste de contact puis un un forum en PHP mais
liste dans un bddJSP : Catch d'une erreur
Mise à jour de champs à partir de liste déroulante...?comment créer une liste déroulante éditable???
[ADA] utiliser l'heureListener sur une liste de JButton
pointeur en mode in outerreur mainCRTStartup ?
Plus de sujets relatifs à : [ADA] Erreur d'execution | liste chainée => soucis de pointeur ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR