fonctions string et coredump sur UNIX [c'est pas fini]

fonctions string et coredump sur UNIX [c'est pas fini] - C - Programmation

Marsh Posté le 08-07-2004 à 10:12:39    

me revoilou sur le forum pour une erreur dans mon programme c
 
la compilation classique sur un systeme HP/UX:
gcc -o prog prog.c
 
ne retourne aucune erreur, cependant, en executant mon programme, j'ai l'erreur suivante m'est retournee:
 
./to_xml[16]: 5316 Memory fault(coredump)
 
 
je recommence avec une compilation plus 'parlante':
 
gcc -Wall -o prog prog.c
 
voici ce qui me retourne en sortie:
 
to_xml.c: In function `liaison_filiale':
to_xml.c:81: warning: implicit declaration of function `strcpy'                
to_xml.c:118: warning: implicit declaration of function `strcmp'
to_xml.c: In function `ext_ligne':
to_xml.c:184: warning: implicit declaration of function `memset'
to_xml.c: In function `ecriture_bloc':
to_xml.c:364: warning: implicit declaration of function `strcat'
 
 
que signifie le implicit declaration?
 
voici une parcelle de mon code:
 
 
 
 while(lecturecourant != NULL){
           if(i<2){
                insertionfils = (CELL *)malloc(sizeof(CELL));
               strcpy(insertionfils->nom,lecturefils->nom);                      
                if(lecturecourant->fils == NULL){      
                   insertionfils->suivant = NULL;
                                                 
                   lecturecourant->fils = insertionfils; //liaison vers le premier element fils
                }
                else{
                    insertionfils->suivant = lecturecourant->fils;
                    lecturecourant->fils = insertionfils;
                }
                lecturefils = lecturefils->suivant;  
           }
 
 
le premier bug rencontre est au niveau de la ligne de strcpy , dans quelle sens ma declaration est-elle incorrecte et comment puis-je corriger cela?
 
ps:
le meme code compile par gcc sous un windows nt me retourne les memes warnings avec un gcc -Wall o, cependant l'executable fonctionne parfaitement (ou du moins le semble) sur mon systeme windows
l'unix est 100 fois plus tatillons...et a juste titre quelqu'un a-t-il repere mon erreur?


Message édité par kungouf le 08-07-2004 à 10:38:49
Reply

Marsh Posté le 08-07-2004 à 10:12:39   

Reply

Marsh Posté le 08-07-2004 à 10:14:41    

tu aurais pas oublié un header ?
comme #include <string.h> ?


---------------
-( BlackGoddess )-
Reply

Marsh Posté le 08-07-2004 à 10:15:30    

#include <string.h>


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 08-07-2004 à 10:16:57    

..je viens de tester a l'instant
oui c'etait un header manquant!
merci infiniment, je fait encore des erreurs de newb, j'ai commencer le c il n'y a pas longtemps...

Reply

Marsh Posté le 08-07-2004 à 10:17:21    

merci de vos reponses rapides :)

Reply

Marsh Posté le 08-07-2004 à 10:34:29    

..cepandant, l'histoire n'est pas finie (malheureusement), car ca serais trop facile
 
en effet, je n'ai plus aucune erreur de compilation avec un gcc -Wall..cependant, mon programme me retourne toujours un coredump:
 
Memory fault(coredump)
 
quelqu'un sait-il comment debugguer ce type d'erreur memoire?
il y a t -il des options particuliere de gcc a activer a la compilation?
 
et il y a t -il des outils sous unix qui permettent de tracer les erreurs memoire?
 
merci

Reply

Marsh Posté le 08-07-2004 à 10:56:55    

gdb

Reply

Marsh Posté le 09-07-2004 à 16:52:51    

merci taz, en effet gdb m'a permis de retracer l'execution a a detecter le code coupable :)
 
merci

Reply

Marsh Posté le 10-07-2004 à 10:02:15    

lol surtout que je te l'avais déjà dis dans ton précédent post  :D


Message édité par Worldofdada le 10-07-2004 à 10:02:25
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed