[C] Fonctions et pointeurs... ?

Fonctions et pointeurs... ? [C] - C++ - Programmation

Marsh Posté le 04-07-2002 à 14:02:37    

J'ai un petit problème avec ce qui suit :

Code :
  1. int fct_gene(void);
  2. int fct1(FILE *file);
  3. int fct2(FILE *file);
  4. int fct2bis(FILE *file);
  5. int fct3(FILE *file);
  6. int fct1(FILE *file)
  7. {
  8.   file = fopen("toto", "rb" );
  9.   fread(.....);
  10.   if (...)
  11.     fct2(file);
  12.   else
  13.     fct2bis(file);
  14. }
  15. int fct2(FILE *file)
  16. {
  17.   fread(...);
  18.   return ...;
  19. }
  20. int fct2bis(FILE *file)
  21. {
  22.   fread(...);
  23.   return ...;
  24. }
  25. int fct3(FILE *file)
  26. {
  27.   fread(...);
  28.   return ...;
  29. }
  30. int fct_gene(void)
  31. {
  32.   FILE *file;
  33.   if (fct1(file))
  34.   {
  35.     fct3(file);
  36.     return ...;
  37.   else
  38.     return ...;
  39. }


En fait, 'file' est correctement ouvert dans fct1. Il n'y a pas de problème pour l'utiliser dans fct2 ou fct2bis.
MAIS, de retour dans fct_gene, pas moyen d'avoir un file correct (toujours nul)...
Je dois avoir quelques lacunes...
 
Si vouz pouviez m'aider...  Merci à tous.

Reply

Marsh Posté le 04-07-2002 à 14:02:37   

Reply

Marsh Posté le 04-07-2002 à 14:09:46    

Code :
  1. FILE *fct1()
  2. {
  3.   FILE *file;
  4.   file = fopen("toto", "rb" );
  5.   fread(.....);
  6.   if (...)
  7.     fct2(file);
  8.   else
  9.     fct2bis(file);
  10.   return file;
  11. }
  12. int fct_gene(void)
  13. {
  14.   FILE *file;
  15.   file=fct1();
  16.   if (file)
  17.   {
  18.     fct3(file);
  19.     return ...;
  20.   else
  21.     return ...;
  22. }

Ça devrait mieux marcher.


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
Reply

Marsh Posté le 04-07-2002 à 14:21:11    

Désolé pour tout ce dérangement...
En fait Jar Jar, j'ai besoin de mon int (car plusieurs valeurs retournées dans mes fonctions suivant les cas...).
Mais je suis vraiment un gros nul !!!
Je pense qu'avec çà...

Code :
  1. int fct1(FILE **file)
  2. {...}
  3. int fct_gene()
  4. {
  5. FILE *file;
  6. if (fct1(&file))
  7. ...
  8. }


Je suis vraiment un gros neuneu...

Reply

Marsh Posté le 04-07-2002 à 14:36:58    

BB138 a écrit a écrit :

Je suis vraiment un gros neuneu...


Bof, on voit passer tous les jours des questions bien plus connes que ça...
Des conneries avec les pointeurs, on en fait tous au début.


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
Reply

Sujets relatifs:

Leave a Replay

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