Problème de variable char en C++
Pecose
-
Pecose -
Pecose -
Bonjour a tous, programmeurs,
Je vous appelle a l'aide pour cette chose là:
#include <cstdlib>
#include <iostream>
using namespace std;
char* boucleU(char vone[123],char vtwo[123],char vtre[123],int variable)
{
char Xone[123];char Xtwo[123];char Xtre[123];
vone=Xone;vtwo=Xtwo;vtre=Xtre;
char* tablchar[]={Xone,Xtwo,Xtre};
return tablchar[variable];
}
int main()
{
int i=0;
cin>>i;
char Uone[123];char Utwo[123];char Utre[123];
cin>>Uone>>Utwo>>Utre;
cout<<"La variable est "<<boucleU(Uone,Utwo,Utre,i)<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Mon problème:
Les variables Uone, Utwo et Utre aprés leur p'tit tour chez boucleU reviennent avec des caractères bizare...
Petit bonhommes et autres formes étranges...
Ma question:
Peut on garder intactes la valeur des varables sans réécrire tout le programme?
Merci d'avence...
Je vous appelle a l'aide pour cette chose là:
#include <cstdlib>
#include <iostream>
using namespace std;
char* boucleU(char vone[123],char vtwo[123],char vtre[123],int variable)
{
char Xone[123];char Xtwo[123];char Xtre[123];
vone=Xone;vtwo=Xtwo;vtre=Xtre;
char* tablchar[]={Xone,Xtwo,Xtre};
return tablchar[variable];
}
int main()
{
int i=0;
cin>>i;
char Uone[123];char Utwo[123];char Utre[123];
cin>>Uone>>Utwo>>Utre;
cout<<"La variable est "<<boucleU(Uone,Utwo,Utre,i)<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Mon problème:
Les variables Uone, Utwo et Utre aprés leur p'tit tour chez boucleU reviennent avec des caractères bizare...
Petit bonhommes et autres formes étranges...
Ma question:
Peut on garder intactes la valeur des varables sans réécrire tout le programme?
Merci d'avence...
Configuration: Windows XP Firefox 2.0.0.11
6 réponses
-
Ton code est très étrange lol. Tu veux faire quoi ?
Lorsque de l'appel boucleU(Uone,..), tu fais Uone = Xone qui n'est pas initialisée, donc Uone va pointer sur une zone aléatoire. Pire encore à la fin de la fonction la variable Xone n'existera plus car elle est locale. Donc Uone pointera sur rien. Tu n'as pas des warnings à la compilation ? -
A priori la lecture ne s'arrêtes pas, je ferais une lecture de cin, et après je lirais cette chaines de caractère avec un sur 3 etc...
Parce que les caractères bizzard sont tous simplement la mémoire... donc tu fais un débordement mémoire et ce n'est vraiment pas propre... enfin je me trompe p-e mais j'aime pas trop ce que tu as fait.... -
C'est trés simpa mais mon petit esprit ne convien pas pour comprendre là ou tu veux en venir.
Comment je doit faire pour initialiser Uone au bon moment? -
Moi je le trouve normal... c'est un code...
Bon c'est claire, il es un peut personnel mais bon...
Merci pour les explications, mais as tu un solution? -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Ben, je ne sais même pas ce que tu veux faire, donc je peux pas vraiment t'aider.
Explique ce que tu souhaites faire, je t'aiderai après.
Sinon, lorsque tu fais char var[150], var contiendra des données aléatoires car il n'a pas été initialisé. C'est ce que tu fais dans ta fonction. -
C'est pas grave, j'ai trouver:
#include <cstdlib>
#include <iostream>
using namespace std;
char* boucleU(char vone[123],char vtwo[123],char vtre[123],int variable)
{
char* tablchar[]={vone,vtwo,vtre};
return tablchar[variable];
}
int main()
{
int i=0;
cin>>i;
char Uone[123];char Utwo[123];char Utre[123];
cin>>Uone>>Utwo>>Utre;
cout<<"La variable est "<<boucleU(Uone,Utwo,Utre,i)<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Merci a tout le monde pour votre aide,
L'idée était de pouvoir modifier les variables dans un tableau pour pouvoir les classer et les sortir au hasard avec rand().