ZePRiNCE Coucou, tu veux voir ma RTX ? | Bonjour,
C'est un problème de débutant je dois l'admettre J'ai eu beau cherché sur Google : rien (ou alors des trucs qui plante), donc je m'en remet à la communauté HFR qui m'a déjà aidé quelques fois
Donc :
Dans mon main, j'ai un double tableau de chaines de caractères.
Je voudrais modifier une chaine (en connaissant les 2 coordonnées pour arriver à la bonne chaine) dans une fonction void, ça ne marche qu'a moitié, car quand je veux ensuite verifier dans mon main la "nouvelle" chaine, j'ai un truc bizarre (?°')
J'ai d'abord pensé à un erreur de cast dans ma fonction void, mais visiblement, c'est pas ça. Voici le code simplifié pour aller à l'essentiel
Code :
- void point_addproperty(int x, int y, char *property, char *plan[20][20])
- {
- char buffer[26];
- strcpy(buffer,plan[x][y]);
- strcat(buffer,property);
- strcat(buffer,"|" );
- /*(1)*/ plan[8][4]=buffer;
- /*(2)*/ strcpy(plan[8][4],buffer);
- /*(3)*/ plan[8][4]=(char *)buffer;
- }
- void plan_init(char *plan[20][20])
- {
- int x,y;
- for (x=0; x<20; x++)
- for (y=0; y<20; y++)
- plan[x][y] = "";
- point_addproperty(8,5,"croix",plan);
- }
- int main(void)
- {
- char *plan[20][20];
- plan_init(plan);
- printf("Nouvelle valeur de la chaine 8.5 %s\n",plan[8][5]);
- }
|
La solution (1) me donne donc a mon main printf les ?°'
La solution (2) (que j'ai trouvé là : http://www.ltam.lu/tutoriel-ansi-c/prg-c86.htm ) me fait un beau plantage, ni + ni -
La solution (3) me donne pareil que (1)
J'ai essayé plusieurs solutions trouvé ci et là sur le net (dont les doubles pointeurs, cela dit j'y suis peutêtre pas bien arrivé), cela dit j'ai pas trouvé de cas identique au mien...
Ce qui est bizarre quand meme, c'est que :
- Si dans ma fonction add_property, je met "en dur" : plan[x][y] = "Hello";, là, ça marche tres bien dans mon main printf.
- Si dans ma fonction add_property, je fais un printf de plan[x][y] ou buffer, on voit bien aussi la bonne chaine...
Vraiment là, un petit coup de main serait le bienvenue
Merci beaucoup Message édité par ZePRiNCE le 27-05-2008 à 21:31:39 ---------------
A VENDRE: Razer Chroma ARGB Controller / Boitier / Support Triple Screen / Ventirad / Carte USB3
|