2 pièce(s) jointe(s)
segmentation fault "knapsack"
Bonjour,
Je suis entrain de programmer le problème de sac à dos (knapsack) en C. au dela du problème algorithmique. Je compile mon pragramme qui ne m'afiche aucune erreur, par contre au moment de l'execution avec un fichier, une fois je depasse 11 elements je recois un message de segmentation fault. J'ai essayé de debugger mais je n'arrive pas à savoir en quel endroit ca coince.
Je vous remercie infiniment de m'aider à localiser le probleme (juste ou ca coince au niveau d'allocation memoire, tableau,..)
voici le programme + le fichier
je compile sous cette forme (parce que je veux pas voir les warnning dans un premier temps)
gcc -o horowitz horowitz.c
execution: ./horowitz fichier.txt
Merci bcp :D
segmentation fault "knapsack"
Bonjour,
Je ne suis pas doue en c mais etant donne que je travaille sous linux j'ai vu que "sys/time.h" existe bien dans les include. (peut etre pas pour vous qui travaille sous windows). Si "sys/time.h" n'existe pas elle genere effectivement l'erreur qui vous a ete affichee+ toutes les erreurs du time: gettimeofday...
avec le compilateur que j'utilise (peut etre bcp plus tolerent) je ne recois aucune erreur. Mon programme marche bien pour des fichiers contenant 10 elements mais à partir de 11 elements je recois une segmentation fault.
Citation:
Envoyé par ccensam
Vous avez dit sans erreur!!!! Ca se compile!!!!
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Compiling: C:\Documents and Settings\Oussama\Bureau\test.c
C:\Documents and Settings\Oussama\Bureau\test.c:11:23: sys/times.h: No such file or directory
C:\Documents and Settings\Oussama\Bureau\test.c: In function `void* palloc(long int, long int)':
C:\Documents and Settings\Oussama\Bureau\test.c:135: error: invalid conversion from `void*' to `long int*'
C:\Documents and Settings\Oussama\Bureau\test.c: In function `void wadd(allinfo*, item*)':
C:\Documents and Settings\Oussama\Bureau\test.c:153: error: invalid conversion from `void*' to `state*'
C:\Documents and Settings\Oussama\Bureau\test.c: In function `void wsub(allinfo*, item*)':
C:\Documents and Settings\Oussama\Bureau\test.c:193: error: invalid conversion from `void*' to `state*'
C:\Documents and Settings\Oussama\Bureau\test.c: In function `void findbreak(allinfo*)':
C:\Documents and Settings\Oussama\Bureau\test.c:310: error: invalid conversion from `void*' to `state*'
C:\Documents and Settings\Oussama\Bureau\test.c:314: error: invalid conversion from `void*' to `state*'
C:\Documents and Settings\Oussama\Bureau\test.c: In function `int main(int, char**)':
C:\Documents and Settings\Oussama\Bureau\test.c:407: error: aggregate `timezone tz' has incomplete type and cannot be defined
C:\Documents and Settings\Oussama\Bureau\test.c:419: error: `gettimeofday' undeclared (first use this function)
C:\Documents and Settings\Oussama\Bureau\test.c:419: error: (Each undeclared identifier is reported only once for each function it appears in.)
C:\Documents and Settings\Oussama\Bureau\test.c:427:2: warning: no newline at end of file
Process terminated with status 1 (0 minutes, 0 seconds)
9 errors, 1 warnings |
Corrige ces erreurs et on vera, il y a trop à dire sur votre code!!!
2 pièce(s) jointe(s)
segmentation foult et SIGSEGV
Bonjour,
Voici le programme qui se compile sans warning:
Merci de m'aider à trouver mon erreur segmentation fault. Normalement au moment du debogage je recois le signal SIGSEGV ce qui prouve qu'il ya une "violation de memoire" mais je n'arrive pas à localiser ou ca marche pas
:D
Citation:
Envoyé par Skyrunner
Ouais enfin dire, je compile comme ça parce que je veux pas de warning ben voila quoi.
Le minimum est pour moi
gcc -Wall fichier.c -o fichier
Un warning est une erreur, c'est tout.
segmentation Fault dur a detecter!!
Excuse moi, mais c'est bien un programme en C dont je cherche l'erreur segmentatation Fault saut que j'ai mentioné qu'au moment du debogage il y a un signal SIGSEV quiindique bien qu'il s'agit d'une "violation de memoire" mais je n'arrive pas à localiser dans quel ligne ou dans quelle instruction.
Merci pour votre Aide
Citation:
Envoyé par Emmanuel Delahaye
Alors il faut le préciser dans le titre ou poster dans le forum adéquate. Ici, on parle du langage C, pas de la programmation sous Linux...