tableaux de pointeurs - C - Programmation
Marsh Posté le 28-12-2009 à 12:07:28
ReplyMarsh Posté le 28-12-2009 à 22:38:02
yartempion a écrit : 9a compile mais a l'execution fichier core = erreur memoire |
il faut au moin indiquer la ligne du erreur.
je nvai pas lire , mais je vois trop de Ptr and loops
-> possible debordement du memoire , verify
Marsh Posté le 29-12-2009 à 07:49:25
yartempion a écrit : 9a compile mais a l'execution fichier core = erreur memoire |
ca n'aide pas ...
tu dois acceder à de la mémoire non allouée quelque aprt dans ton bordel.
Deux conseils:
- separe ton code en fonction plus simple
- utilise valgrind pour detecter les pbs de mémoires
Marsh Posté le 29-12-2009 à 10:44:57
Quel bordel sans nom, la liste de tout ce qui ne va pas juste a la premiere lecture est longue :
Affectation de car_int dans le test sur une zone de memoire mise a zero automatiquement, puis chargee par le fread et testee parfois comme un char * parfois fois comme un char, boucle une fois for, une fois do-while, commentaires completements inutiles ou absents et le tout dans un meme bon gros bloc bien barbare. Meme pas l'excuse de la performance car le realloc de strlen alors qu'on pourrait memoriser la longueur a chaque tour de boucle est la cata. Sans mentionner les fuites memoire sur car_int alloue a chaque tour de boucle et jamais libere. Des noms de variables sexy comme resultat5 (j'imagine que les 4 premiers etaient occupes), le ad_ip utilise parfois comme char *, parfois comme je ne sais pas quoi (strcpy... &ad_ip), le sup_clientip dont les pointeurs sont bien alloues (enfin je le suppose) mais pas chacun des elements du tableaux auxquels on accede via le fameux strcpy (le core doit probablement venir de par la)...
Bref, un seul remede, reecrire proprement. Si je dois maintenir un code ecrit comme ca, je met un contrat sur la tete de son auteur, le core etant un resultat absolument certain des la lecture des premieres lignes de code. Imagine devoir revenir la dessus dans 3 mois (parceque ton truc plante a cause d'une ligne ip vide par ex dans un fichier mal forme) et tu comprendra ton malheur.
Marsh Posté le 28-12-2009 à 05:37:59
Bonjour,
Je cherche a créer un tableau de pointeur et a le remplir avec des valeurs d'autre pointeur
voici un bout de prog
je fait glisser une fenetre de lecture et lorsque je detecte la chaine client-ip je lis les caracteres suivants sans les conserver tant que ce sont des esp ensuite je concatene les carcteres suivants tant que ce ne sont pas des esp.
Le but etatnt de recupérer la valeur du pointeur de la chaine concatenée pour la mettre dans un tableau de pointeur via la fonction strcpy et la ça coinçe.Quelqu'un peut il voir ce qui cloche dans le principe.
Cordialement