[C] erreur de segmentation
Fermé
tophe03
Messages postés
327
Date d'inscription
lundi 24 janvier 2005
Statut
Membre
Dernière intervention
14 avril 2010
-
21 nov. 2006 à 20:40
tophe03 Messages postés 327 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 14 avril 2010 - 28 nov. 2006 à 13:27
tophe03 Messages postés 327 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 14 avril 2010 - 28 nov. 2006 à 13:27
A voir également:
- Erreur de segmentation c
- Erreur 0x80070643 - Accueil - Windows
- Une erreur s'est produite instagram ✓ - Forum Instagram
- Iptv erreur de lecture - Forum TV & Vidéo
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur vidéo freebox ✓ - Forum TV & Vidéo
7 réponses
mamiemando
Messages postés
33372
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 novembre 2024
7 802
22 nov. 2006 à 01:02
22 nov. 2006 à 01:02
Celà signifie que tu accède à une zone mémoire non allouée (erreur typique en C quand on commence à manipuler des pointeurs ou des tableaux).
Exemple :
Solution :
Comment détecter une segmentation fault avec gcc+gdb :
Dans gdb :
A noter que pour windows dev cpp est basé sur gcc...
Bonne chance
Exemple :
#include <stdio.h> int main(){ int tab[5]; printf("%d\n",tab[69]); //seg fault car tab[69] est hors du tableau int *x; *x = 28; // seg fault, car *x est un entier non alloué return 0; }
Solution :
#include <stdio.h> #include <stdlib.h> int main(){ int tab[70]; printf("%d\n",tab[69]); int *x =(int*)malloc(sizeof(int)); *x = 28; return 0; }
Comment détecter une segmentation fault avec gcc+gdb :
gcc -g -W -Wall -o plop.exe plop.c gdb plop.exe
Dans gdb :
r bt
A noter que pour windows dev cpp est basé sur gcc...
Bonne chance
22 nov. 2006 à 20:47
Je vois pas trop où j'aurais pu faire une erreur.
Voici une partie du code:
Pour ce qui est de la dérivation (IDM_DERIV), ça marche.
Pour la somme (IDM_SOMME), c'est là que j'ai l'erreur.
Si j'intercale des "SetWindowText(hEdit, buf);" dans IDM_SOMME, les polynomes p[0] et p[1] s'affichent correctement. C'est après que ça se gâte, au niveau de tampon[0]=add(p[0],p[1]).
Si tu vois qcc de louche...
Merci