erreur endl

erreur endl

par Tao Esteban Breda,
Number of replies: 4

Bonjour,

Je suis dans mon module gui et dans ma fonction save_balls qui permet de sauvegarder les balles. Lors de la sauvegarde d'un fichier, le compilateur m'informe d'un segmentation fault dont je ne vois vraiment pas l'origine .. après quelques test, j'en ai conclu (peut être à tord) que le segmentation fault est dû au dernier endl de la ligne ci-dessous. En effet j'en ai conclu ça car quand je supprime les deux endl à droite, le segmentation fault a lieu avant la sauvegarde du nombre de balles. De plus, si je met un cout avant le dernier endl, celui-ci est affiché, si je le met juste après, il ne l'est pas. Donc le segmentation fault a lieu sur le dernier endl et je ne vois vraiment pas pourquoi, vous auriez une idée ?



In reply to Tao Esteban Breda

Re: erreur endl

par Tao Esteban Breda,

De plus si j'enlève les 2 endl, la commande pour donner le nombre de balle ne marche pas, donc j'ai l'impression que c'est une erreur avec la dernière commande de cette ligne (quelle qu'elle soit ..)

In reply to Tao Esteban Breda

Re: erreur endl

par Sacha Levy,

Salut

endl force l'affichage des données en attente dans le terminal.

Sans endl, il est possible que des données envoyées sur cout n'aient pas encore été affichées au moment du crash.

In reply to Tao Esteban Breda

erreur endl

par Ugo Damiano,
Bonsoir,
Quand l'objet n'est plus utilisé sont déstructeur est appellé. Si cet appel est la dernière utilisation de m_Area il est supprimé après le endl. Si dans ce destructeur tu as un 'delete pointeur' et que ton pointeur n'a pas été initialisé correctement il se peut que l'erreur vienne de là. C'est un problème que nous avons eu avec un étudiant l'autre jour. Le commentaire de S. Levy est aussi à prendre en compte.
Cordialement,

Ugo
In reply to Tao Esteban Breda

Re: erreur endl

par Ronan Boulic,

A première vue et indépendamment du problème soulevé j'ai l'impression que votre module gui est en train de s'occuper du détail de l'opération de sauvegarde alors que son role est seulement de récupérer un nom de fichier.

Une fois le nom de fichier obtenu, celui-ci devrait être passé au module simulation qui est responsable d'organiser l'opération de sauvegarde et de déléguer ce qui peut l'être aux modules Player, Ball, et Map.

C'est exactement la même approche que pour la lecture. Le nom de fichier est transmis au module simulation qui gère les détails de la lecture.