Prob : Afficher un répertoire en C & Mettre Données dans une structure

Prob : Afficher un répertoire en C & Mettre Données dans une structure - Programmation

Marsh Posté le 08-11-2001 à 15:46:47    

void affiche_fichiers(char lecteur)
{
 struct ffblk fblock;
 char chemin[6] = "C:\\*.*";
 chemin[0] = lecteur;
 
 if(findfirst(chemin,&fblock,NORMAL) != 0 )
 {
  puts("Erreur de lecteur !" );
 }
 printf("%s\t%d\n",fblock.ff_name,fblock.ff_fsize);
 
 moule = malloc(sizeof(struct lafile));
 debut = moule;
 courant = moule;
 moule -> nom_fichier = fblock.ff_name;
 moule -> size_fichier = fblock.ff_fsize;
 moule -> suivant = NULL;
 
 while( findnext(&fblock) == 0)
  printf("%s\t%d\n",fblock.ff_name,fblock.ff_fsize);
  moule = malloc(sizeof(struct lafile));
  courant -> suivant = moule;
  courant = moule;
  courant -> suivant = NULL;
  moule -> nom_fichier = fblock.ff_name;
  moule -> size_fichier = fblock.ff_fsize;
 
}
 
Le problème : cette ligne là marche : printf("%s\t%d\n",fblock.ff_name,fblock.ff_fsize);
 
Celle-ci, qui pourtant a les même noms que lautre, ne marche pas : moule -> nom_fichier = fblock.ff_name; <-- Msg d'erreur : LValue Required.   Ma structure est correcte en passant.

Reply

Marsh Posté le 08-11-2001 à 15:46:47   

Reply

Marsh Posté le 08-11-2001 à 16:13:12    

Alllllo !!

Reply

Marsh Posté le 08-11-2001 à 16:24:08    

si nom_fichier est un char[], je mettrai :
strcpy(nom_fichier,fblock.ff_name);

Reply

Marsh Posté le 08-11-2001 à 16:30:17    

Merci !! Toi t'es fort :))

Reply

Marsh Posté le 08-11-2001 à 16:32:36    

En premier, éviter le piège char chemin[6] pour mettre 6 caractères, le \0 terminal, il va chez qui, écraser un caractère de la variable suivante ? Faut toujours prévoir un de plus pour les char de chaînes (sauf si on écrit ses routines soi-même !).
 
moule = malloc(sizeof(struct lafile)); habituellement, il me semble qu'on précise le type, genre (char *)malloc(), ou (toto *)malloc(), .. C'est plus facile à reprendre/relire.
 
moule, c'est un quoi ? il est déclaré sous quel "type" ?
 
Ca gène pas d'allouer de la mémoire à moule plus d'une fois sans la libérer qq part ?
 
Aux autres à faire avancer le schmilibilick.. :)

Reply

Marsh Posté le 08-11-2001 à 18:12:31    

C est pas la norme tout ca !!!!!!  :sol:


---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
Reply

Sujets relatifs:

Leave a Replay

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