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

  FORUM HardWare.fr
  Programmation

  mémoire ne peut être written

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

mémoire ne peut être written

n°107524
paranoidan​droid
Posté le 04-03-2002 à 18:06:17  profilanswer
 

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 ???

mood
Publicité
Posté le 04-03-2002 à 18:06:17  profilanswer
 

n°107581
couitchy
Posté le 04-03-2002 à 21:31:54  profilanswer
 

t'es sous win2k ?

n°107582
paranoidan​droid
Posté le 04-03-2002 à 21:34:07  profilanswer
 

couitchy a écrit a écrit :

t'es sous win2k ?  




 
oui Win2k SP2
et visual C++ 6

n°107591
verdoux
And I'm still waiting
Posté le 04-03-2002 à 21:52:07  profilanswer
 

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

 

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

n°107596
paranoidan​droid
Posté le 04-03-2002 à 21:55:21  profilanswer
 

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.

n°107961
paranoidan​droid
Posté le 05-03-2002 à 19:10:27  profilanswer
 

Non rien ????
 
vraiment rien ?

n°107962
Profil sup​primé
Posté le 05-03-2002 à 19:11:13  answer
 

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

n°107964
deathsharp
Posté le 05-03-2002 à 19:12:51  profilanswer
 

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.
n°107968
paranoidan​droid
Posté le 05-03-2002 à 19:15:36  profilanswer
 

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 ???

n°107969
deathsharp
Posté le 05-03-2002 à 19:19:24  profilanswer
 

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.
mood
Publicité
Posté le 05-03-2002 à 19:19:24  profilanswer
 

n°107970
paranoidan​droid
Posté le 05-03-2002 à 19:19:26  profilanswer
 

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

n°107971
paranoidan​droid
Posté le 05-03-2002 à 19:20:46  profilanswer
 

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 ...


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

  mémoire ne peut être written

 

Sujets relatifs
[Visualc++] Quantité mémoire maximum pour des listes chaînées[VB] erreur 10055: aucun espace memoire n'est disponible
Perl-Gtk et memoire[JS] -> y a moyen de mettre en memoire une chiene ?
[VB] Tableau en mémoireMémoire étendu en turbo c????
[C] Libérer la mémoire avec delete[porg sous Win] urgent (pb de memoire)
Peut-ont connaitre l'occupation mémoire d'un pc avec javascript ?allocation memoire vs affectation
Plus de sujets relatifs à : mémoire ne peut être written


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