begin process at 2012 05 28 07:43:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

char * test[264]


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

char * test[264]

jeudi 24 juillet 2003 à 16:20:24 | char * test[264]

youpiyoyo

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
jeudi 24 juillet 2003 à 18:01:56 | Re : char * test[264]

tcok

Membre Club
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
mardi 12 août 2003 à 17:12:16 | Re : char * test[264]

HCJarod

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
>


Cette discussion est classée dans : test, char, nb, fil, charr


Répondre à ce message

Sujets en rapport avec ce message

Switch et char [ par Stoomm ] Bonjour,Si j'ai :char test[10];strcpy (test, "monchar ";Si je souhaite faire un switch : Je fais comment ???switch (test){...}Il aime pas ! Quelqu'un Fatal signal: Segmentation Fault (SDL Parachute Deployed) [ par broks ] Je ne comprends vraiment pas pourkoa ca ne marche pas...C'est surement un probleme au niveau de la fonction saisi puisque je plante lorsque je dois sa Une Class et des Char ... [ par Tidam ] Vala j'ai un petit probleme avec ma source :class Test{public: Test (char initialName[15]); char LireName() const { return wName; } void DefName (char test sur variable de type char [ par enrageur ] j'aimerais indetifier des mots dans un fichier txt. J'ouvre le fichier et je le copy dans un char (data). Ensuite je fais un test pour voir si les deu addition en binaire [ par jejedi ] bonsoir , je dois faire un petit prog qui additione 2 nombres binaire. Le probleme c' est que mes 2 nombres étant des chaines de caractére ca me renv Copy de char * [ par Tidam ] Voila en gros une partie de mon prog :char * phrase [5];char *test = new char [50];...strcpy(phrase[2],test);Et le programme plante. Le probleme est p fstream [ par Mcjo ] Bonjour, me rémettant depuis peu au c++ j'ai testé un code de lecture dans un fichier mais la fonction bad() ne semble pas fonctionnée correctement. Problème avec fwrite [ par riep ] bonjour j'ai un petit problème avec fwrite, en fait je voudrais tout simplement recopier les données d'un fichier 1 dans un fichier 2 seulement si ces plantage inexpliqué [ par graall ] bonjour, j'ai un problème avec ce code :     getch();     FILE *pHtml;     int nb_char = 0;     bool sortie = false; return char [ par nem02004 ] char test() {     char tst[10];     sprintf(tst,"looool");     return tst;}int main() {    MessageBox(NULL,test,NULL,NULL);}Je epnse que vous co


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales