Parc d'attraction en C - C - Programmation
Marsh Posté le 10-01-2014 à 13:05:04
Bonjour,
je suis entrain de lire ton code. Avant de pouvoir mes corrections, je te suggère d'utiliser valgrind pour trouver les problèmes d'allocations de mémoire. Il me semble que l'erreur de segmentation viennent de tes pointeurs. Si tu trouve l'erreur fait moi savoir.
Cordialement,
Marsh Posté le 10-01-2014 à 16:57:17
Hmm, j'arrive sans doute après la guerre, mais juste histoire d'avoir une réponse :
Pour référence, le code était (edit: arf, j'ai changé 2 ou 3 trois dans les prototypes pour faire tourner le code sous Windows, pas sûr d'avoir tout remis dans l'ordre) :
Code :
|
Marsh Posté le 11-01-2014 à 10:05:08
Bonjour
As-tu remarqué qu'une attraction libre n'était qu'une attraction contrôlée dont certaines valeurs étaient inutilisées ?
Tu aurais pu n'utiliser qu'une seule structure commune pour les deux types en mettant les valeurs inutilisées à 0 ou -1...
Marsh Posté le 11-01-2014 à 15:24:22
Citation :
|
Il suffit de vérifier que le pointeur soit non null si oui return
Citation :
|
Ok je modifie de suite.
Citation :
|
Comment gérer cet aspect du programme dans ce cas ? Je suis d'accord sur le fait d'appeler la fonction du thread mais je ne voyais pas comment faire autrement.
Citation : As-tu remarqué qu'une attraction libre n'était qu'une attraction contrôlée dont certaines valeurs étaient inutilisées ? |
Oui je m'en suis bien rendu compte mais j'essaie d'aller au plus vite car je dois rendre le programme et le rapport demain ><
Marsh Posté le 11-01-2014 à 16:07:25
Citation : La ligne 134 ne me paraît pas bonne. Tu passes NULL comme argument au démarrage de ton thread, thread qui s'attend à avoir un pointeur (valide) sur une structure PERSONNE => SEG FAULT. |
Réglé
Citation : Petite faute de frappe ligne 125. Tu as écrit tabAttrac_P[i].visite = 0; tu voulais sans doute écrire tabAttrac_F[i].visite = 0; |
Réglé
Seulement lors de mes affichages à la fin du programme j'affiche que des zéros
Marsh Posté le 12-01-2014 à 18:07:08
rohffr a écrit : Oui je m'en suis bien rendu compte mais j'essaie d'aller au plus vite car je dois rendre le programme et le rapport demain >< |
Mauvais calcul. Parfois, prendre quelques minutes pour bien poser les bases te fait gagner ensuite 10 fois plus de temps dans le codage. parce que tu peux utiliser des boucles pour traiter tes éléments au lieu de dupliquer tes instructions ou tes variables. Et etc...
rohffr a écrit : Seulement lors de mes affichages à la fin du programme j'affiche que des zéros |
Ben faudrait que tu affiches tes variables à différents moments critiques de ton code !!!
Marsh Posté le 04-01-2014 à 15:02:04
Bonjour,
J'ai un programme à faire pour la rentrée seulement là je suis complètement bloqué.
Voici l'énoncé :
Citation: Nous considérons dans cet exercice, qu'un parc d'attraction comporte deux types d'attractions :
Les attractions dites "libres" auxquelles les visiteurs peuvent accéder librement, sans faire la queue et où ils peuvent rester le temps qu'ils souhaitent. Ces attractions peuvent être, par exemple, des animations. Nous considérons, dans cete exercice, que ce type d'attractions ne possède pas de limite au niveau du nombre de ses visiteurs.
Les attractions dites "contrôlées" pour lesquelles les visiteurs doivent faire la queue et payer un droit d'entrée. Pour simplifier l'exercice, nous considérons que les clients ne peuvent plus sortir de la queue une fois qu'ils y sont. Par ailleurs, ils en sortent dans le même ordre qu'ils y sont entrés. Bien sûr, une attraction de ce type ne peut admettre qu'un nombre limité de visiteurs. Contrairement aux attractions "libres",une fois entrés dans une attraction "contrôlée", les visiteurs sont contraints d'y rester le temps qu'elle dure celle-ci.
Dès lors qu'un visiteur quitte une attraction, il est libre d'y rester le temps qu'il souhaite dans les allées du parc avant de retourner dans une autre attraction ou même de quitter le parc.
Ecrivez un programme qui simule une journée de fonctionnement d'un tel parc d'attraction.
Voilà de là j'en ai déduit qu'il fallait un thread pour chaque attraction, la même chose pour chaque visiteur. Il faut également un tableau de sémaphores pour gérer les attractions "controlée". A cela j'ai ajouté quelques fonctionnalités comme la gestion du porte monnaie des visiteurs par rapport au coût des attractions contrôlées et je donne aussi l'attraction la plus visité en fonction de son type.
Seulement j'ai une erreur de segmentation --'
le fichier : http://cjoint.com/?0AepbiGK8TN
PS : L'application doit être developpée sur un Linux .
Merci d'avance
Cordialement
Winflow