*** stack smashing detected ***: <unknown> terminated Abandon (core dumped
Résolu
FifiAbesoindaide
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
FifiAbesoindaide Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
FifiAbesoindaide Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Servicing stack c'est quoi
- Blue stack - Télécharger - Émulation & Virtualisation
- Blue stack avis ✓ - Forum Logiciels
- Fiabilité de BlueStacks - Forum Logiciels
- Comment prendre un stack dans minecraft - Forum Jeux PC
- Bluestacks 5 - Forum Jeux PC
4 réponses
Bonjour,
Si un fichier core a été généré, il suffit de l'ouvrir avec ton débogueur pour y voir le problème exact.
Sinon une piste : ton code tel qu'il est, lit une ligne de plus que la taille réelle du fichier. L'indice
Ta fonction lirelog() n'a aucun moyen de retourner que les données lues sont absentes ou incohérentes, une interface
Si un fichier core a été généré, il suffit de l'ouvrir avec ton débogueur pour y voir le problème exact.
Sinon une piste : ton code tel qu'il est, lit une ligne de plus que la taille réelle du fichier. L'indice
iretourné par
Chargement()en oublie toujours la dernière te masquant le problème (un bug peut en cacher un autre).
Ta fonction lirelog() n'a aucun moyen de retourner que les données lues sont absentes ou incohérentes, une interface
bool lirelog(FILE *fe, Logement *pLog)permettrait un meilleur contrôle.
Merci de te réponse. Je suis étudiant en informatique et je n'ai pas encore vu le type de variable 'bool' (qui doit signifier booléen si je ne me trompe). Donc je ne préfère pas utiliser cette méthode.
J'ai fais des test et il me manque une ligne de lu car le programme me dit 19 et 20 lignes sont présentes dans mon fichier. Donc comme vous l'avez souligné mon indice
La "ligne de plus" qui est lu est-elle lié à la lecture hors de la boucle
J'ai fais des test et il me manque une ligne de lu car le programme me dit 19 et 20 lignes sont présentes dans mon fichier. Donc comme vous l'avez souligné mon indice
ien oublie la dernière ligne mais je vois pas comment elle peut l'oublier.
La "ligne de plus" qui est lu est-elle lié à la lecture hors de la boucle
while(feof(fe)==0)de la première ligne ? Car je l'ai supprimé et fait en sorte de tout lire dans la boucle désormais mais je n'obtiens pas le résultat escompté.
ireprésente l'index du dernier élément mis dans le tableau, donc le nombre d'éléments dans le tableau est
(i+1).
Oui, la fonction
feof()n'indique pas que l'on est à la fin du fichier mais indique que la dernière opération à tenté de lire au-dela de la fin. Et si la dernière ligne se termine par un retour chariot tu liras aussi une ligne de trop.
Tu n'obtiens pas le résultat escompté! Que se passe-t-il? Ça plante toujours? Ça fait autre chose? As-tu essayé d'utiliser un débogueur? Il faut regarder plus précisément en pas à pas ce qu'il se passe. Par exemple dans
lirelog()afficher ce qui a été lu permet de vérifier que toutes les lignes sont lues et que leur contenu est bien extrait.
Au final j'ai réussi à résoudre le problème. C'était mon fichier texte que je devais charger. Un espace était en plus à certains endroit à la place de underscore. Ce qui avait pour conséquence de décaler mon chargement de tableau. Et au final mon tableau était plein il restait des éléments non lus dans mon fichier donc ma boucle
Cordialement, Fifi.
while(feof(fe)==0)continuait de tourner. Je passe en résolu.
Cordialement, Fifi.