mémoire ne peut être written

mémoire ne peut être written - Programmation

Marsh Posté le 04-03-2002 à 18:06:17    

Bonjour ...
 
en ouvrant un fichier txt qui ne contient qu'une simple liste de mot ( nom de tables ) en read je rencontre l'erreur du titre seulement si le fichier est audessus d'un certain nombre de lignes .. et si le fichier se termine par un retour ... et pas à la fin du dernier mot ..
 
Je stocke tous ces mots dans un tableau :
 
#define SIZETAB  2000
 
char *tables[SIZETAB];
 
 fic = fopen(fichier,"r" );
 
  if(fic != NULL)
  {
 //  system("md result" );
 
   do
    {
     fscanf(fic, "%s", temp);
     tables[i]=malloc(strlen(temp)*sizeof(char));

 

    strcpy(tables[i],temp);
     i++;
    }
   while(!feof(fic));
   
   fclose(fic);
 
quel est le problême ???

Reply

Marsh Posté le 04-03-2002 à 18:06:17   

Reply

Marsh Posté le 04-03-2002 à 21:31:54    

t'es sous win2k ?

Reply

Marsh Posté le 04-03-2002 à 21:34:07    

couitchy a écrit a écrit :

t'es sous win2k ?  




 
oui Win2k SP2
et visual C++ 6

Reply

Marsh Posté le 04-03-2002 à 21:52:07    

c'est quoi temp ?
Et puis
tables[i]=malloc((strlen(temp) + 1)*sizeof(char));

 

[jfdsdjhfuetppo]--Message édité par Verdoux--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 04-03-2002 à 21:55:21    

Verdoux a écrit a écrit :

c'est quoi temp ?
Et puis
tables[i]=malloc((strlen(temp) + 1)*sizeof(char));  
 
 




 
ben temp c'est une variable qui va recevoir chaque mot de la liste et qui va permettre de faire le pont entre le mot et le tableau dans lequel il va être stocké.
 
tables[i]=malloc((strlen(temp) + 1)*sizeof(char));  : je réserve l'espace en mémoire pour stocker tous les mots.

Reply

Marsh Posté le 05-03-2002 à 19:10:27    

Non rien ????
 
vraiment rien ?

Reply

Marsh Posté le 05-03-2002 à 19:11:13    

généralement c'est un pb d'indices ou un pointeur pas initialisé

Reply

Marsh Posté le 05-03-2002 à 19:12:51    

vu le titre boucherie dans les pointeurs
c koi exactement temp, parce que dans fscanf je sais pas si faut le mettre comme ca... a voir avec ce ke c


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 05-03-2002 à 19:15:36    

deathsharp a écrit a écrit :

vu le titre boucherie dans les pointeurs
c koi exactement temp, parce que dans fscanf je sais pas si faut le mettre comme ca... a voir avec ce ke c  




 
benje l'explique plus haut le 'temp' .. qu'est ce qui va pas avec ???

Reply

Marsh Posté le 05-03-2002 à 19:19:24    

kel explication :sarcastic:  
le type c koi ?
parce que par exemple si c un int faut passer la ref a fscanf


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 05-03-2002 à 19:19:24   

Reply

Marsh Posté le 05-03-2002 à 19:19:26    

paranoidandroid a écrit a écrit :

 
 
benje l'explique plus haut le 'temp' .. qu'est ce qui va pas avec ???  




 
bon en clair ..
chuis un gros nullard en C, et les pointeurs je sais pas ce qui cloche ... en mode débogage le programme se déroule bien, par contre, si je l'execute direct ça coince ..
 
si je mets tout le code .. je me fais jeter en l'air non ?
 
250 lignes ... que je peux abréger, si y'en a qui veulent s'amuser ...
 
Merci

Reply

Marsh Posté le 05-03-2002 à 19:20:46    

c'est une chaine de caractere :
 
{
 FILE *fic;
 FILE *sortie;
 char temp[32];
 char *cmd;
 char retour[30];
 char *fileres;
 int j;
 int i=0;
 char *tables_res;
 char info[6];
 
 //formation de la chaine pour le chemin du fichier resultat
 fileres = malloc((strlen(RESULT_FILE)+strlen(path))*sizeof(c
har));
 sprintf(fileres,"%s%s",path,RESULT_FILE);
 
 strcpy(retour," >> " );
 strcpy(info, "echo " );
 
 
 fic = fopen(fichier,"r" );
 
  if(fic != NULL)
  {
 //  system("md result" );
 
   do
    {
     fscanf(fic, "%s", temp);
     tables[i]=malloc(strlen(temp)*sizeof(char));

 

    strcpy(tables[i],temp);
     i++;
    }
   while(!feof(fic));
 
   if (tables[i] == "" ) i--;
 
   fclose(fic);
 
 
etc ...

Reply

Sujets relatifs:

Leave a Replay

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