assignment makes pointer from integer without a cast ???? [ Résolu ]

assignment makes pointer from integer without a cast ???? [ Résolu ] - C++ - Programmation

Marsh Posté le 19-04-2003 à 20:42:56    

Salut,
voilà, lorsque je compile mon projet, j'ai des warnings :
"assignment makes pointer from integer without a cast"
 
le log complet de la compilation :
------------------>
Compiler: Default compiler
Building Makefile: "C:\Documents and Settings\Muad'Dib\Mes documents\Informatique-FAC\SM2\optionInfo2\Makefile.win"
Executing  make...
make.exe -f "C:\Documents and Settings\Muad'Dib\Mes documents\Informatique-FAC\SM2\optionInfo2\Makefile.win" all
gcc.exe -D__DEBUG__ -c projet/TLA.c -o projet/TLA.o -I"C:/Dev-Cpp/include"   -ansi -g3
 
projet/TLA.c: In function `LireGRAPHE':
projet/TLA.c:24: warning: assignment makes pointer from integer without a cast
projet/TLA.c:26: warning: assignment makes pointer from integer without a cast
 
gcc.exe -D__DEBUG__ projet/dijkstra.o projet/TAS.o projet/TLA.o projet/dico.o projet/ldc.o  -o "Dijkstra.exe" -L"C:/Dev-Cpp/lib"  
 
Execution terminated
Compilation successful
<------------------
 
 
voilà les lignes qui posent problèmes !!

Code :
  1. fscanf ( fichier, "%s", &tampon);
  2. ligne 24 : test_commentaire = strncmp ( tampon , "#" , 1 );
  3. ligne 26 : test_noeuds = strcmp ( tampon , "nbNoeuds" );


 
Quelqu'un a-t-il une idée d'où ca peut venir ?
 
J'ai bien inclu stdli.h, stdio.h et string.h !
Les déclarations sont OK !
Reste ces warnings embetants !
 
Voilà @+
Miles


Message édité par Miles--Teg le 19-04-2003 à 22:10:57
Reply

Marsh Posté le 19-04-2003 à 20:42:56   

Reply

Marsh Posté le 19-04-2003 à 21:47:12    

Miles--Teg a craqué son slip :


fscanf ( fichier, "%s", &tampon);


 
 :heink:


Message édité par schnapsmann le 19-04-2003 à 21:48:09
Reply

Marsh Posté le 19-04-2003 à 22:05:48    

Je viens de modifier mon 1er msg !
le

Code :
  1. fscanf ( fichier, "%s", &tampon);


est bien bon pourtant !!!
je met le & car il le faut pour pouvoir mettre dans tampon ce que je récupere du fichier !!!
 
De plus les erreurs viennent des autres lignes !!
Je n'ai mis le fscanf qu'a titre indicatif, pour montrer sur quoi je travaille !!!
 
Alors, une idée ??
 
---> Solution au pb :  
au lieu de mettre  
 

Code :
  1. FILE * fichier;
  2.   char * tampon;
  3.   char * test_commentaire;
  4.   char * test_noeuds;

 
comme definition, mieux vaudrais mettre :
 

Code :
  1. FILE * fichier;
  2.   char * tampon;
  3.   int test_commentaire;
  4.   int test_noeuds;

 
Ca serait mieux non ??? !!!!!
 :p  
 
J'avais pas fait gaffe à la def des variables !!!
Donc pb résolu !!
 
@+
Miles


Message édité par Miles--Teg le 19-04-2003 à 22:10:35
Reply

Marsh Posté le 19-04-2003 à 23:40:34    


 
 :heink:
 
ça c'est tjrs faut  :o  
 
qq pour lui dire pq svp, moi être fatigue
 
bon aller finalement, extrait de man scanf en parlant de s dans %s
 

Citation :


s   A character string is expected; the corresponding argument should be
   a character pointer pointing to an array of characters large enough
   to accept the string and a terminating \0, which will be added
   automatically.  The input field is terminated by a white-space
   character.


Message édité par schnapsmann le 19-04-2003 à 23:44:50

---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 20-04-2003 à 00:28:11    

En gros, vire le '&' de '&tampon'
Tu n'a pas à mettre de & vu qu'il s'agit déjà d'un pointeur, donc d'une adresse.
 
fscanf prend des pointeurs en paramètres. &tampon, c'est une adresse de pointeur de char, soit un pointeur de pointeur, donc ça colle pas!

Reply

Marsh Posté le 20-04-2003 à 10:22:19    

Ha ok !!!
Ben voui, maintenant que vousinsistez sur ce point, tampon c'est déjà un ptr sur un char (char *tampon) !!
Mais quel boulet je suis !
 
Merci ,
je m'en vais corriger ce petit problème !!!
 
Thx,
@+
Miles

Reply

Sujets relatifs:

Leave a Replay

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