mémoire ne peut être written - Programmation
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
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]
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.
Marsh Posté le 05-03-2002 à 19:11:13
généralement c'est un pb d'indices ou un pointeur pas initialisé
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
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 ???
Marsh Posté le 05-03-2002 à 19:19:24
kel explication
le type c koi ?
parce que par exemple si c un int faut passer la ref a fscanf
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
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 ...
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 ???