Use of uninitialised value of size 8
Résolu/Fermé
rosate999
Messages postés
5
Date d'inscription
mercredi 22 janvier 2014
Statut
Membre
Dernière intervention
24 janvier 2014
-
23 janv. 2014 à 17:39
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 24 janv. 2014 à 19:18
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 24 janv. 2014 à 19:18
A voir également:
- Use of uninitialised value of size 8 valgrind
- Input signal out of range ✓ - Forum Matériel & Système
- Clé windows 8 - Guide
- Departure from inward office of exchange - Forum Réseaux sociaux
- Cb of london - Forum Vos droits sur internet
- Cmdlcache out of memory ✓ - Forum jeux en ligne
3 réponses
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
23 janv. 2014 à 19:01
23 janv. 2014 à 19:01
Salut, soit dit en passant: utilise la balise
Pour commencer, la première erreur que je vois est que tu cherches à accéder à un élément de
Sachant que ta boucle traite maxi 6 lignes, il faut allouer 6 pointeurs de points:
Deuxièmement, ta manière d'accéder aux éléments de ta struct dans le tableau est on ne peut plus étrange, surtout que plus bas tu y accèdes correctement:
Le dernier hic est que je ne vois pas à quoi sert ton
<code>pour mettre du code dans tes messages, ça garde l'indentation et t'as des couleurs en plus.
Pour commencer, la première erreur que je vois est que tu cherches à accéder à un élément de
asans avoir alloué de mémoire, donc
aest un pointeur vide, donc c'est le crash assuré.
Sachant que ta boucle traite maxi 6 lignes, il faut allouer 6 pointeurs de points:
... matriceDistance = fopen("fichier.txt", "r"); a = calloc(sizeof(point *), 6); ...Maintenant a pourra recevoir 6 pointeurs de structure
point.
Deuxièmement, ta manière d'accéder aux éléments de ta struct dans le tableau est on ne peut plus étrange, surtout que plus bas tu y accèdes correctement:
((*a)[i]).i=i1; // WTF o_O? /* Devient */ a[i]->i=i1; // Là c'est propreMais une fois de plus tu accèdes à un pointeur
NULL, il faut allouer de la mémoire pour ton point:
... fscanf(matriceDistance,"%d %d %lf", &i1,&i2, &val); a[i] = malloc(sizeof(point)); ...
Le dernier hic est que je ne vois pas à quoi sert ton
tableau_t *tableau;vu que tu ne t'en sers pas, et que tu fais ça
a=tableau->a;et que c'est pas cool: tu vas perdre ton tableau de points, sans libérer la mémoire en plus... J'ai donc mis les 2 lignes citées en commentaire, et ça marche.
23 janv. 2014 à 22:16