Bonjour,

Voici un bug que je ne comprends pas. J'ai la classe A suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
class A{
...
    void out(char* text);
    FILE *file;
};
 
void A::out(char* text)
{  
  if (file==0) file=fopen("my_file.txt","a"); 
 
  if (file!=0)
  {
      fprintf(file,text);  // ligne bug
 
/*
      FILE *e_file;
      e_file = fopen("another_file.txt","a");
 
      fprintf(e_file,text);
      fclose(e_file);
*/
  }
 
}
Le programme plante lors de l'écriture dans le fichier file, alors qu'il est ouvert en vertu du test effectuer au préalable. Par contre, si je mets la ligne "ligne bug" en commentaire et décomente la section /* ... */ qui suit:
1/ je vérifier bien que le file file est ouvert
2/ l'écriture dans e_file se passe bien

Donc, lorsque je veux écrire dans file le fichier est bien ouvert : pourquoi le plantage ? Est-ce parce que file est décrit comme un membre de la classe A (et non localement, comme e_file) ?

Christian