Posez votre question Signaler

Segmentation fault

dali81 - Dernière réponse le 15 avril 2005 à 13:35
bonjour,

quand je change les paramètres de ma fonction main je recois "segmentation fault"

je pensais que c une erreur liée au dépassement de la capacité mémoire, maais le problème c que je n'ai fait que diminuer la grandeur des parametres!!!
Lire la suite 

Segmentation fault »

7 réponses
Réponse
+1
moins plus
je vais te donner un exemple :

tu fais une fonction qui calcule l'aire d'un triangle

double aire(double B,double h) { return B*h/2;}

Afin de savoir si ta fonction est bien codée, tu essayes pour des valeurs de B e h et tu regardes la valeur renvoyée par ta fonction.

aire(1,1); aire(1,3);
aire(-1,5) -> mauvais, tu obtiens une valeur négative

Donc il faut que tu corriges :

double aire(double B,double h)
{
assert(B>0. && h>0.);
return B*h/2;
}

Plus compliqué : si ta fonctin contient des if...then...else, il faut que tu testes tous les cas.

Un segmentation fault provient très généralement d'un pointeur...
Ajouter un commentaire
Réponse
+0
moins plus
Donne les parties concernée de ton code pour voir,

++
Ajouter un commentaire
Réponse
+0
moins plus
ouf!! ça sera dur pour que tu le comprennes c trop long et en plus la variable est utilisé dans plusieurs fonctions et je sais pas exact à quel niveau se trouve l'erreur. on vient de me dire de faire un débogage pour voir exact l'emplacement de l'erreur; mais pas de résultat y a une fenetre qui me dit "segmantation fault"
Ajouter un commentaire
Réponse
+0
moins plus
ouf!! ça sera dur pour que tu le comprennes c trop long et en plus la variable est utilisé dans plusieurs fonctions et je sais pas exact à quel niveau se trouve l'erreur. on vient de me dire de faire un débogage pour voir exact l'emplacement de l'erreur; mais pas de résultat y a une fenetre qui me dit "segmantation fault"
pom - 15 avril 2005 à 13:14
Enfin si tu n'affiches pas ton code (ou une partie) on ne pourra rien faire.
Affiche les valeurs une par une, fonction par fonction.

As-tu vérifié toutes tes fonctions ? As-tu fait un jeu de test qui prend en compte tous les cas ?

Un segmentation fault peut aussi provenir d'une erreur de pointeur...

Bonne chance !
Ajouter un commentaire
Réponse
+0
moins plus
comment faire un jeu de test??
kij_82 - 15 avril 2005 à 13:33
Un jeu de test, c'est à dire faire tourner ton ancienne version du prog avec différents paramètres pour voir les éventuels dépassement de mémoire, les fautes de pointeurs, ...
Ou alors, fait une trace de ton programme tout simplement, en commencant au début, compme ca tu pourra cerner déjà mieux ton erreur

++
Ajouter un commentaire
Ce document intitulé « segmentation fault » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook