Remplir un tableau avec des chaines de char
Fermé
tivanbelle
-
3 janv. 2010 à 19:28
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 3 janv. 2010 à 21:26
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 3 janv. 2010 à 21:26
A voir également:
- Remplir un tableau avec des chaines de char
- Tableau croisé dynamique - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Tableau ascii - Guide
- Comment faire un tableau - Guide
- Organigramme a remplir word - Guide
5 réponses
perforax
Messages postés
269
Date d'inscription
dimanche 3 janvier 2010
Statut
Membre
Dernière intervention
17 mai 2010
8
3 janv. 2010 à 19:30
3 janv. 2010 à 19:30
return 0 nan?
apprenti_nformaticien
Messages postés
45
Date d'inscription
vendredi 1 janvier 2010
Statut
Membre
Dernière intervention
6 février 2010
5
3 janv. 2010 à 19:31
3 janv. 2010 à 19:31
carte[i][j]=("zone%%.txt",i,j); si c'est dans C
sinon dit moi dans le quel tu le veux :)
sinon dit moi dans le quel tu le veux :)
Oui pardon, c'est bien en C que je le veut mais ce que tu m'a donné ne fonctionne pas.
Quand j'affiche mon tableau ça me donne des (null) dans mes cases
Quand j'affiche mon tableau ça me donne des (null) dans mes cases
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
3 janv. 2010 à 19:57
3 janv. 2010 à 19:57
Salut,
Ce que tu fais n'est pas correct en C. L'affectation d'un tableau de char n'est correcte qu'à l'initialisation, sinon il faut utiliser des fonctions spécifiques. De plus, tu dois utiliser un tableau à trois dimensions (la troisième étant utilisé pour le tableau de char).
Par exemple essais :
Attention tout de même à la fonction sprintf qui mal utilisée peut provoquer des segfaults. Dans ce cas, vaudra mieux utiliser une fonction sécurisée comme snprintf (C99) ou autres.
Cdlt,
Ce que tu fais n'est pas correct en C. L'affectation d'un tableau de char n'est correcte qu'à l'initialisation, sinon il faut utiliser des fonctions spécifiques. De plus, tu dois utiliser un tableau à trois dimensions (la troisième étant utilisé pour le tableau de char).
Par exemple essais :
/*50 ou autres. Cela doit être suffisamment grand pour contenir "zone...txt" + 1 caractère (\0)*/ char carte[10][10][12]; int i,j; for(i=0i<10;i++) { for(j=0;j<10;j++) { sprintf(carte[i][j],"zone%d%d.txt",i,j); } }
Attention tout de même à la fonction sprintf qui mal utilisée peut provoquer des segfaults. Dans ce cas, vaudra mieux utiliser une fonction sécurisée comme snprintf (C99) ou autres.
Cdlt,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
apprenti_nformaticien
Messages postés
45
Date d'inscription
vendredi 1 janvier 2010
Statut
Membre
Dernière intervention
6 février 2010
5
3 janv. 2010 à 20:02
3 janv. 2010 à 20:02
j'ai oublié de metre le I devant %
ta essayer
Carte[i][j]=("zone%i%i.txt",i,j) ;
ça devrais marcher
comment tu as déclarer le tableau ?
ta essayer
Carte[i][j]=("zone%i%i.txt",i,j) ;
ça devrais marcher
comment tu as déclarer le tableau ?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
3 janv. 2010 à 21:26
3 janv. 2010 à 21:26
Il te manque la fonction, et en plus carte[i][j] est un tableau (il manque d'ailleurs une dimension) et non un un tableau de pointeurs. Il faut donc mettre carte[i][j] en argument de fonctions.