[C] fread -> segmentation fault

fread -> segmentation fault [C] - C - Programmation

Marsh Posté le 28-10-2003 à 17:46:15    

j'arrive pas a faire un fread :(
 

Code :
  1. void lecture_fichier( char path ) {
  2.   FILE * File;
  3.   char *message;
  4.  
  5.   File =  fopen(path,"r" ); 
  6.   message = (char*)malloc(1024);
  7.   fread(&message,1024,1,File);
  8.   printf("fread = %s\n",message);
  9.   free(message);
  10.   fclose(File);
  11. }


 
 
lorque j'execute ce bout de code au niveau du fread j'ai une erreure : segmentation fault :(

Reply

Marsh Posté le 28-10-2003 à 17:46:15   

Reply

Marsh Posté le 28-10-2003 à 17:50:33    

fread(message ...) et pas &message , ca attend un void* pas un void**

Reply

Marsh Posté le 28-10-2003 à 17:51:40    

bah déjà pour commencer tu peux tester si ton fopen il a marché ou pas...
tu peux ensuite tester si ton malloc a marché ou pas
regarder le retour des fonctions des fois c'est super utile, sisi
pour ton erreur il y a des chances que ça vienne du fait que tu passes dans le fread l'adresse de l'adresse du buffer, plutôt que l'adresse tout court
 
edit: grilled  [:benou_grilled]


Message édité par Moktar1er le 28-10-2003 à 17:51:57
Reply

Marsh Posté le 28-10-2003 à 17:52:28    

j'ai essayé sans le &, mais j'ai tjrs la meme erreure :(

Reply

Marsh Posté le 28-10-2003 à 17:57:16    

je vais me répéter... tu as contrôlé le retour de fopen et de malloc :??:

Reply

Marsh Posté le 28-10-2003 à 17:57:24    

j'ai testé le fopen avec ca et il marche :
 

Code :
  1. if(File == NULL)
  2.     {
  3.     printf("echouee !\n" );
  4.     exit(1);
  5.     }


 
par contre comment tester un malloc ?

Reply

Marsh Posté le 28-10-2003 à 17:58:33    

bah pareil, tu regardes si ça retourne null ou pas

Reply

Marsh Posté le 28-10-2003 à 17:59:36    

VB HELP a écrit :

j'ai testé le fopen avec ca et il marche :
 

Code :
  1. if(File == NULL)
  2.     {
  3.     printf("echouee !\n" );
  4.     exit(1);
  5.     }


 
par contre comment tester un malloc ?


 
Pareil.

Reply

Marsh Posté le 28-10-2003 à 18:02:34    

et euh ton path ... c'est pas plutôt un "char *"?

Reply

Marsh Posté le 28-10-2003 à 18:04:59    

Faudrait pas un 0 en fin de chaîne "message" ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 28-10-2003 à 18:04:59   

Reply

Marsh Posté le 28-10-2003 à 18:05:49    

j'ai rajouté un  
 
printf("path = %s\n",path);
 
avant le fopen et il semblerai que le pb vienne de la !

Reply

Marsh Posté le 28-10-2003 à 18:08:11    

moktar1er a écrit :

et euh ton path ... c'est pas plutôt un "char *"?


 
oui c'etait ca !!! merci bcp !!!
 :jap:  :jap:

Reply

Sujets relatifs:

Leave a Replay

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