Un pointeur std::string
doit pointer vers un objet std::string
. Ce à quoi il pointe réellement dépend de votre cas d'utilisation. Par exemple :
std::string s("valeur"); // initialiser une chaîne
std::string* p = &s; // p pointe vers s
Dans l'exemple ci-dessus, p
pointe vers une chaîne locale avec une durée de stockage automatique. Quand elle est détruite, tout ce qui pointe vers elle pointeront vers des données indésirables.
Vous pouvez également faire pointer le pointeur vers une chaîne allouée dynamiquement, auquel cas vous êtes responsable de libérer les ressources quand vous avez fini :
std::string* p = new std::string("valeur"); // p pointe vers une chaîne allouée dynamiquement
//....
delete p; // libérer les ressources quand vous avez fini
Il est conseillé d'utiliser des pointeurs intelligents plutôt que des pointeurs bruts vers des objets alloués dynamiquement.