freekid
Messages postés55Date d'inscriptiondimanche 19 septembre 2004StatutMembreDernière intervention 8 mai 2011
-
6 oct. 2006 à 16:13
MuPuF
Messages postés536Date d'inscriptionmercredi 27 avril 2005StatutMembreDernière intervention22 août 2008
-
6 oct. 2006 à 17:17
Bonjour tout le monde,
voila je suis débutant en programmation c++.
Et ma joie s'est arrété lorsqu'une erreur impossible(pour moi) à enlever est apparue.
Voila la topo:
j'ai un code:
#include
using namespace std;
int main()
{
char *test;
cin>>test;
cout<<test<<endl;
return 0;
}
Vraiment simple, pourtant, quand je le lance, il me dit "Erreur de segmentation" juste aprés que j'ai entré une valeur pour la variable test.
Armé d'un debugger, je suis allé voir de plus prés et me suis apercu que le probleme ne venait pas de la ligne "cout<<test<<endl;" mais de la ligne "cin>>test;".
Si quelqu'un pouvait me donner un coup de main sa serait chouette.
cs_Joky
Messages postés1787Date d'inscriptionlundi 22 novembre 2004StatutMembreDernière intervention31 janvier 20092 6 oct. 2006 à 16:19
char *test;
test est un pointeur de char
C'est à dire, qu'il pointe quelque part dans la mémoire
Pour qu'il soit valide, il faut qu'il pointe sur quelque chose de concret, où qu'on lui alloue de la mémoire
Sinon il écrit n'importe ou et boom !
Donc soit tu déclares : char test[255];
Où soit tu fais test = new char[255];
En n'oubliant pas le delete[] test;
Cependant, si t'es débutant, cherche un bon cours sur les pointeurs, parce que c'est la meilleures partie du C :p