Accueil > Forum > > > > taille tableau de structure.
taille tableau de structure.
jeudi 2 juillet 2009 à 16:45:10 |
taille tableau de structure.

macbang
|
Bonjour, Mon programme fonctionne très bien pour le moment. Le seul hic c'est que j'ouvre un fichier texte pour le découper ligne par ligne. Pour l'instant j'ai testé sur des fichiers texte de environ 500 lignes grand max. J'ai donc déclaré ma structure et mon tableau de structure comme ceci. typedef struct infos{ int *id; char *nom; }infos; infos test[500]; J'ai voulu testé le programme avec un fichier contenant BEAUCOUP plus de ligne (environ 50 000). j'ai donc modifié la déclaration du tableau : infos test[50000]; Lors de l'exécution, le programme plante ... Une idée ? Merci d'avance.
|
|
jeudi 2 juillet 2009 à 21:31:51 |
Re : taille tableau de structure.

CptPingu
|
Tu ne peux pas prévoir la taille de ton fichier. Le mieux reste tout de même de traiter les données par paquet. Par exemple, tu pourrais très bien découper les lignes de ton fichier, 30 par 30. Les lignes une fois découpées, sont bien utilisées quelque part ? Donc pourquoi ne pas les utiliser au fur et à mesure du traitement que tu effectues dans ton fichier ?
|
|
jeudi 2 juillet 2009 à 21:33:09 |
Re : taille tableau de structure.

CptPingu
|
Quand je dis: tu ne peux pas prévoir la taille de ton fichier, j'entends par là: tu dois faire des opérations spécifiques pour le savoir. Opérations non nécessaires si tu traites toutes tes données par morceau, jusqu'à atteindre la fin du fichier.
|
|
vendredi 3 juillet 2009 à 10:28:47 |
Re : taille tableau de structure.

macbang
|
les lignes sont découpé une à une et les infos placé avec une boucle while (fgets) dans mon tableau de structure. Je re-utilise cette structure pour en comparer les différentes saisis ( par exemple : infos[i].classe == infos[n].classe ). Seulement il semble que mon programme est du mal a créer un tableau de structure supérieur à un certain nombre (environ 650). Le programme compile mais lors de son execution il plante à la création du tableau : infos test[650];
Ca me parait étrange puisque je découpe dans une structure un autre fichier texte de la même façon dans une autre fonction ( exactement déclaré de la même manière) et la déclaration est la dernière : topologie test[8000]; (topologie étant un autre typedef struct).
|
|
vendredi 3 juillet 2009 à 10:35:11 |
Re : taille tableau de structure.

CptPingu
|
Si tu déclares de grands tableaux statiques de partout, je ne suis pas étonné que tu soit à cours de mémoire au bout d'un moment... De plus, si ta structure est "grosse" alors tu alloues 650 * sizeof (ta_struct), ce qui peut faire beaucoup.
Je continue d'appuyer sur le fait que tu devrais comparer ton fichier par morceau, en stockant une partie des lignes récupérées seulement, et pas toutes en même temps. Ca reviendrait au même que ce que tu fais, à la différence que la taille du fichier n'impacterait pas sur la reservation mémoire de manière aussi prononcé.
|
|
vendredi 3 juillet 2009 à 10:46:28 |
Re : taille tableau de structure.

macbang
|
Oui je vois ce que tu veux dire mais par contre je sais pas trop comment m'y prendre pour arriver a cette fin. Qu'est-ce qui va changer dans le programme ? la boucle while (fgets) j'imagine ?
|
|
vendredi 3 juillet 2009 à 10:53:46 |
Re : taille tableau de structure.

CptPingu
|
Réponse acceptée !
Tu fais une fonction qui prends en arguments un FILE*, et une limite de ligne. Cette fonction retourne un tableau de structure dynamiquement.
J'ai pas le code en tête, mais ça pourrait donner ceci:
infos* getLineFromFile(File* file, int limit);
FILE* file1 = fopen(... FILE* file2 = fopen(...
infos* lines1 = NULL; infos* lines2 = NULL;
while (!feof(file1) && !feof(file2)) { lines1 = getLineFromFile(file1, 100); lines2 = getLineFromFile(file2, 100); compare(lines1, lines2); free(lines1); free(lines2); }
// Tester ici, si feof(file1) et si feof(file2). Si l'un des deux est à la fin et pas l'autre, les fichiers sont différents.
Attention: non testé, syntaxe non vérifiée, c'est juste un principe.
|
|
vendredi 3 juillet 2009 à 11:13:27 |
Re : taille tableau de structure.

macbang
|
Merci de ton aide, je vais me pencher dessus.
|
|
Cette discussion est classée dans : ligne, programme, tableau, infos, structure
Répondre à ce message
Sujets en rapport avec ce message
Tableau multidimensionel et fichiers [ par AngeloVivaldi ]
slt à tous.Voila, je voudrai mettre dans un tableau multidimensionel chaque ligne d'un fichier, puis modifier une ligne du tableau pour le réécrire da
aide en ligne d'un programme perso [ par Tutu ]
Bonjour à tous.Voilà je voudrais savoir comment faire pour créer une aide perso ? Que faut-il faire ? Et comment l'insérer dans une applic (genre SDI)
Tableau de structure [ par tomsawyerbelgique ]
Bonjour suriez-vous me dire comment fait-on pour passer un tableau de structure dans une fonction:struct student { char nom[10]; int nbcot
tableau dynamique de structure en C ? [ par axl79 ]
salutje voudrai faire un tableau dynamique de structures. voici ma structure: struct struct_arete { int sommet1; int sommet2; int quantite;} arete;com
pb avec tableau et fichier texte [ par krolanta ]
Voila mon pb é que g un fichier texte avec des coordonnées et que je voudrais mettre chaque coordonnées ds une case du tableau.En fait ca revient a li
Mémoire partagée et pointeur [ par darsh99 ]
Bonjour,J'essai de faire passer un tableau dynamique, un pointeur donc, d'un programme à un autre, l'adresse est bien passée et les champs non dynamiq
pb classe [ par JediMaster ]
j'ai créé un tableau dynamique dans une classe comme ca:class MaClasse{public: int m_largeur; int m_hauteur; int** m_tableau; MaClasse(int lar,int hau
[C] lignes d'un fichier dans un tableau : Segmentation fault [ par Michel76 ]
Bonjour,Pardonnez-moi de cette question de débutant.Soit un fichier contenant :-----001002-----Je souhaiterais mettre chacune des lignes de ce fichier
tableau de chaines de char [ par JaguiJaguar ]
Salut, je suis etudiant.je dois réaliser un prog en c qui lit une chaine de char, la stocke dans la premiere ligne d'un tableau char *tab[n]où n est l
Recuperation des Parametres passés en ligne de commande [ par fortran ]
Bonjour.Voila, dans un programme win32, j'essaye de recuperer le chemin, et nom de mon executable, ainsi que les parametres qui lui ont été passés en
Livres en rapport
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|