Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
950 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C] Pb : utilisations des chaines de caracteres

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Pb : utilisations des chaines de caracteres

n°279279
nikko
Posté le 04-01-2003 à 18:09:49  profilanswer
 

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 ?
 

mood
Publicité
Posté le 04-01-2003 à 18:09:49  profilanswer
 

n°279288
Taz
bisounours-codeur
Posté le 04-01-2003 à 18:16:50  profilanswer
 

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)

n°279340
nikko
Posté le 04-01-2003 à 18:33:18  profilanswer
 

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..


Message édité par nikko le 04-01-2003 à 18:34:14
n°279343
Taz
bisounours-codeur
Posté le 04-01-2003 à 18:34:47  profilanswer
 

++Taz a écrit :


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)

²

n°279347
nikko
Posté le 04-01-2003 à 18:41:08  profilanswer
 

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..

n°279368
Taz
bisounours-codeur
Posté le 04-01-2003 à 19:52:13  profilanswer
 

retourne un pointeur vers une zone alloué dynamiquement ou passe en paramètre un pointeur vers une zone destinée à recevoir des données

n°279752
nikko
Posté le 05-01-2003 à 20:01:16  profilanswer
 

et c'est pas possible de retourner tout simplement une chaîne ?
merci pour tes réponses

n°279757
Taz
bisounours-codeur
Posté le 05-01-2003 à 20:28:06  profilanswer
 

nikko a écrit :

et c'est pas possible de retourner tout simplement une chaîne ?
merci pour tes réponses

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.

n°279797
nikko
Posté le 05-01-2003 à 22:50:46  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C] Pb : utilisations des chaines de caracteres

 

Sujets relatifs
Comment faire des chaine de caracteres de plus de 255 caracteres ?Question pour caractères d'un textbox
[PHP]caractères spéciaux et formulaire[delphi] débutant : Opération sur chaines de caractères
supprimer des caractères dans une chaîne ?Recherche sur couleur de caractères dans une cellule.
Deux declarations de tableaux de caracteres = probleme[VB] convertir des caractères (lettres, chiffres) en héxa
Concatenation de chaines de caracteres 
Plus de sujets relatifs à : [C] Pb : utilisations des chaines de caracteres


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR