[c] problème de fgets --> bus error core dumped

problème de fgets --> bus error core dumped [c] - C - Programmation

Marsh Posté le 14-11-2003 à 18:31:54    

voila le morceau de code :
 

Code :
  1. if ((FpCalcul = fopen(argv[1], "r" )) == NULL) /* ouverture en mode lecture */
  2. ...
  3. while (fgets(ExpressionCalcul, 256, FpCalcul) != NULL ) /* tant qu'on est pas a la fin du fichier */
  4.     {
  5.       /* indicateur de l'avancement */
  6.       printf("." );


 
j'ai déclaré  
 
  int octets_lu; /* nombre d'octets de la chaine recu */
  FILE *FpCalcul; /*pointeur pour le fichier calcul */
  char *ExpressionCalcul; /* expression a calculer */
 
 
bon alors il me lance un core dumped (au niveau du fgets car il ne fait pas le printf("." )) alors que il existe bien un fichier ENVOIE qu'il ouvre correctement (avec traitement d'erreur).
donc d'après ce que je sais Core dumped signifie qu'il essaie de lire à un endroit ou il n'a pas d'authorisation.
Ors il ne lit même pas la première ligne du fichier.
donc pk une telle erreur ? la fonction pointe vers le bon fichier et ce dernier n'est pas vide (il contient Essaie1 et Essaie2 sur deux lignes différentes).

Reply

Marsh Posté le 14-11-2003 à 18:31:54   

Reply

Marsh Posté le 14-11-2003 à 18:35:45    

char ExpressionCalcul[256] serait plus juste je pense vu qu'avec char *ExpressionCalcul tu n'alloues pas de memoire

Reply

Marsh Posté le 14-11-2003 à 23:01:44    

bah euh ça marche tjrs pas :/

Reply

Marsh Posté le 14-11-2003 à 23:59:28    

Ajoute avant ton while la ligne "assert(FpCalcul != NULL);" et "#include <assert.h>" au début de ton programme.
 
Je suis près à parier que FpCalcul = NULL :D

Reply

Marsh Posté le 15-11-2003 à 04:29:44    

  • Donne l'erreur complète
  • Compile avec -g
  • Debug le coredump pour voir où exactement ça plante

Reply

Sujets relatifs:

Leave a Replay

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