Tu déclare un tableau de pointeurs char *test[264] mais qui ne pointe sur rien!! utilse malloc pour allouer un espace mémoire à chaque pointeur (autant de malloc que de lignes). Après le malloc, tes pointeurs pointent sur une zones mémoires de la taille que tu à choisi dans le malloc.
a+
-------------------------------
Réponse au message :
-------------------------------
> en fait un tableau est comme un pointeur !
> tout les element de ton tableau de pointeur ( char* test[] )
> vont pointer sur le meme endroit en memoire
>
> il faudrait que tu fasse un malloc pour creer a chaque fois un nouveau char
>
> exemple :
>
>
> LireFichier(); > test[nb]=(char*)malloc(strlen(charr+1)); > strcpy(&test[nb], charr, strlen(charr)); > nb++; > |
>
> sans oublier bien sur de liberer la memoire a la fin du prog ;-)
>
> @+
> tcok
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > si je créé cette variable
> > char * test[264];
> >
> > et si je fait
> > test[0]="test";
> > test[1]="test1";
> >
> > ceci fonctionne
> >
> > mais si par exemple si je fais
> > int nb=0;
> > char charr[40];
> >
> >
> > void LireFichier()
> > {
> > FILE* fil=fopen("C:\\tmp1.txt","r");
> > fscanf(fil,"%s",charr);
> > fclose(fil);
> > }
> >
> > void fonction()
> > {
> > LireFichier();
> > test[nb]=charr;
> > nb++;
> > }
> >
> >
> > le nouveau écrase l'ancien
> >
> > si par exemple au premier passage charr est égale à test
> > test[0] est égale à test
> >
> > mais si au deuxieme passage charr équivaut à peutimporte
> >
> > test[0] équivaut à peuimporte
> > ainsi que test[1] équivaut à peuimporte
> >
> > pourquoi??????
> > merci
>