Pb : utilisations des chaines de caracteres [C] - C++ - Programmation
Marsh Posté le 04-01-2003 à 18:16:50
1) merci d'utiliser les balises cpp
2) merci de poster du code complet
3) essaye de compiler
le return truc[50] doit pas passer.
en C, on ne peut pas retourner un tableau, juste un pointeur. si tu tiens absolument a renvoyé un pointeur, assure toi qu'il pointe vers une zone mémoire accessible (si cette zone mémoir est locale à une fonction, bam, tu pars dans le decor)
Marsh Posté le 04-01-2003 à 18:33:18
excuse moi, mais je pense pas pas que ce soit tres utile que j poste les 80 lignes qui font la transformation
Le programme bloque sur l'appel de la fonction (et donc la recuperation de la chaine post dans le programme principal)
Si je fais un appel, il n'y a pas de probleme,
mais si je decide d'afficher ou de recuperer le resultat, là ça bloque..
Marsh Posté le 04-01-2003 à 18:34:47
++Taz a écrit : |
²
Marsh Posté le 04-01-2003 à 18:41:08
comment je dois faire alors pour retourner une chaine ??
(excuse, j'ai mis longtemps à comprendre ta réponse..)
j'ai essayé de faire un cast, et ça marche pas :
char truc;
truc=(char)post[50];
return truc;
je m'y prends mal sans doute..
Marsh Posté le 04-01-2003 à 19:52:13
retourne un pointeur vers une zone alloué dynamiquement ou passe en paramètre un pointeur vers une zone destinée à recevoir des données
Marsh Posté le 05-01-2003 à 20:01:16
et c'est pas possible de retourner tout simplement une chaîne ?
merci pour tes réponses
Marsh Posté le 05-01-2003 à 20:28:06
nikko a écrit : et c'est pas possible de retourner tout simplement une chaîne ? |
par ce que une chaine n'existe pas en C: on appelle chaine la série d'octets terminée par un 0 pointée par une variable.
Marsh Posté le 05-01-2003 à 22:50:46
finalement, j'ai utilisé une procédure et une variable globale pour contourner mon problème...
c laid, mais bon !!
c promis, quand j'aurais progressé, j'essayerais de faire mieux
merci encore pour ta patience et tes réponses ++Taz
Marsh Posté le 04-01-2003 à 18:09:49
Bonjour,
j'ai un problème avec un prog qui change une expression parenthésée en post-fixée.
Le prog fait bien le changement, mais j'ai un probleme lors du retour de ma chaine contenant la nouvelle expression (post)
Voila le code :
//Programme principal
main()
{
char retour;
int priorite;
char exp[50]="(2+5-6)*3+(5-3)/9+6";
printf("\ntransformation : \n" );
printf("%s",transforme(exp));
}
//Procédure transformation
char transforme(char expression[50])
{
init(ma_pile);
int j=0,i=0;
char post[50];
.
.
printf("\n post : %s",post);
return post[50];
}
J'arrive bien à visualiser le contenu de post avec le printf, mais j'ai une erreur "..la memoire ne peut pas etre read" l'ors de l'appel de la fonction : printf("%s",transforme(exp));
Vous ne pensez koi ??
ça vient des déclarations ? de l'appel ?