eliramomo
Messages postés14Date d'inscriptionjeudi 4 juin 2009StatutMembreDernière intervention22 septembre 2010
-
13 sept. 2010 à 17:40
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
3 oct. 2010 à 16:40
Bonjour tout le monde,
j'aimerai que vous m'aidiez a propos d'une erreure que je recois lors de l'execution a partir de turbo C
ça s'affiche NOT ENOUGH MEMORY et voici le code:
#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<math.h>
#include<string.h>
#include<dir.h>
void main()
{
struct ffblk ffblk;
int done=0;
FILE *f_call;
char *s;
int mois=0,i,e,som;
long tab[1000][12]={0};
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 3 oct. 2010 à 16:40
Salut,
Dans ton premier code, ton utilisation de s est effectivement incorrecte. Tu passes en paramètre de fscanf un pointeur non initialisé qui peut pointer sur tout et n'importe quoi.
Utiliser une taille de 100 est aussi arbitraire et dangereuse, sauf si tu es parfaitement sûr que la structure de ton fichier fera que fscanf ne lira jamais plus de 100 caractères.
Comme expliqué dans certaines de tes précédentes question, il faudrait mieux charger le fichier complet en mémoire puis de travailler sur le tableau chargé.
Regarde ce genre de code. Il propose par exemple une fonction pour charger un fichier en mémoire (Si le fichier n'est pas trop gros, inférieur à quelques 100 de Mo par exemple).