fonctions string et coredump sur UNIX [c'est pas fini] - C - Programmation
Marsh Posté le 08-07-2004 à 10:14:41
tu aurais pas oublié un header ?
comme #include <string.h> ?
Marsh Posté le 08-07-2004 à 10:15:30
#include <string.h>
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...
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
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
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
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