Bonjour,

Je dois faire un programme en C et je rencontre un problème avec les tableaux de chaînes de caractères.

Je vous ai collé une partie de mon programme ci-dessous :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
int nb_equipes, nb_etapes;
char nom_equipe[20];
 
fscanf(flec, "%d%d", &nb_etapes, &nb_equipes);
char * tab_equipes[nb_equipes];
 
for (i=0;i<nb_equipes;i++){
   fscanf(flet,"%s",nom_equipe);
   tab_equipes[i] = nom_equipe;
   printf(" equipe %d : %s \n",i,tab_equipes[i]);
}
Avec la fonction fscanf je veux copier un nom d'équipe dans la variable nom_equipe (ceci marche très bien).
Ensuite, je veux copier la valeur de cette variable dans le tableau tab_equipes. Le problème est que c'est l'adresse de la variable nom_equipe qui est copiée.

Après être repassé dans la boucle for plusieurs fois, les valeurs contenues dans tab_equipes sont toutes identiques (et égales à la dernière valeur prise par nom_equipe) alors qu'elles devraient être toutes différentes... Ceci est dû au fait que c'est l' adresse de nom_equipe qui a été copiée dans le tableau et pas sa valeur...

Comment je peux contourner ce problème ?

Merci de votre aide.