[c++]chaine de caractére

Résolu/Fermé
chevalier_25 - 29 déc. 2008 à 12:55
 loupius - 30 déc. 2008 à 03:19
salut,

j'ai ecris ce code pour lire et affucher 2 chaine de caractere :

#include<iostream.h>
#include<conio.h>
void main(){
char *n,*f;
cout<<"\n Entrer Nom :";
cin>>n;
cout<<"\n**********"<<n<<endl<<"******";
cout<<"\n Entrer Prenom :";
cin>>f;
cout<<"\n******"<<f<<"******";
getch();
}

la premiere chaine et afficher mais la 2eme ne s'affiche pas
de l'aide svp
A voir également:

4 réponses

pour utiliser tes pointeurs il faut leur allouer de l'espace mémoire:
void main()
{

char *n,*f;
n=new char[20];//n pointe sur un bloc valide;
f=new char[20]; // de meme .
cout<<"\n Entrer Nom :";
cin>>n;
cout<<"\n**********"<<n<<endl<<"******";
cout<<"\n Entrer Prenom :";
cin>>f;
cout<<"\n******"<<f<<"******";
getch();

}
0
chevalier_25
29 déc. 2008 à 13:10
nom, mais mois je veut pas fixer la longueur de mais chaine a 20 je veut qu'ellles sois des chaines dynamique
est qu'il ya une solution
0
chevalier_25
29 déc. 2008 à 16:17
de l(aide svp
0
En C, si tu veux une chaîne dynamique ce sera à toi de la gérer à coup de malloc, realloc et free... ça marche mais tu réinventes la roue car, en C++, il existe une classe 'string' qui tu permets d'avoir une chaîne dynamique sans avoir l'inconvénient de la gestion mémoire.
Mais de toutes façons, comme te l'a dit Goodboy21, il faut allouer de la mémoire aux pointeurs:
méthode statique:  char  str[20];
méthode dynamique: char* str = (char*)malloc(20);
0