Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1518 connectés 

  FORUM HardWare.fr
  Programmation
  C

  problème d'allocation du tableau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème d'allocation du tableau

n°1917620
dimadima
Posté le 23-08-2009 à 09:53:26  profilanswer
 

Bonjour,
 
Je voulais copier le contenu du fichier "exemple .txt" dans un tableau t.
t est un tableau de chaine de caractère. on ne sait pas en avance ta taille de tableau.
le fichier "exemple.txt":
lundi
mardi
mars
Avril
dimanche
 
Voici mon essai:

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. int allocation(int N) 
  5. {
  6. FILE *fp;
  7. char *t,s[100],attribut[32];
  8. int i,j;
  9. t = (char *) malloc(N*sizeof(char));
  10. if(t== NULL)
  11. {
  12. printf("probleme d'allocation\n" );
  13. exit(0);
  14. }
  15. fp=fopen("exemple.txt","r" );
  16. if (fp == NULL)
  17. {
  18. printf("impossible d'ouvrier le fichier\n" );
  19. exit(0);
  20. }
  21. rewind(fp);
  22. //copier le contenu du fichier dans le tableau
  23. for(i=0; i < N;i++)
  24.     {
  25.     fgets(s, 100, fp);
  26.         sscanf(s,"%s",attribut);
  27.     strcpy(t[i],attribut);
  28. }
  29.    
  30.      //affichage le contenu de tableau
  31.   for(j=0;j<N;j++)
  32.    printf("j=%d %s\n",j,t[j]);
  33.    fclose(fp);
  34.        return 0;
  35. }
  36. int main(void)
  37. {
  38. FILE *fp = NULL;
  39. char s[100];
  40. int N=0;
  41. fp=fopen("exemple.txt","r" );
  42. if (fp == NULL)
  43. {
  44. printf("impossible d'ouvrier le fichier\n" );
  45. exit(0);
  46. }
  47. while (fgets(s,100,fp)!= NULL)
  48. N++;
  49. fclose(fp);
  50. allocation(N);
  51.   return 0;
  52. }


 
 
Mais, l'exécution ne passe pas bien !!
 
Merci


Message édité par dimadima le 23-08-2009 à 10:13:16
mood
Publicité
Posté le 23-08-2009 à 09:53:26  profilanswer
 

n°1917674
Sve@r
Posté le 23-08-2009 à 18:53:59  profilanswer
 

Amusant comme on retrouve les mêmes problèmes dans divers forums.
Mais pourquoi avoir différents pseudos ???
 
Bon, t'as eu les réponses sur l'autre forum. t[i] est de type char et tu veux y copier une chaine. Déjà là ça chie.
 
Par ailleurs, tu lis le fichier pour compter le nb de lignes puis tu le relis pour remplir les datas. Tu pourrais éviter ce comptage et allouer/réallouer ta zone lors du remplissage...
 
Enfin tous ces exit() dans ta fonction on sent vraiment le truc pondu sans la moindre réflexion.


Message édité par Sve@r le 23-08-2009 à 18:55:36

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  problème d'allocation du tableau

 

Sujets relatifs
Probleme avec le client citrixAllocation d'un tableau dans une fonction
[C++] Probleme de Makefile/linkage[VB/VBA/VBS] Excel - Lien entre Tableau croisé dynamique et cellule
Problême avec un petit script javascriptExcel/VB - Valeur cellule de ligne + élevée dans tableau
Problème avec allocation dynamique de tableau (C)problème allocation tableau dynamique
Mmap probleme d allocation memoire d un tableau double entréeProblème d'allocation d'un tableau dans une fonction
Plus de sujets relatifs à : problème d'allocation du tableau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR