ce code est-il correct?Copie de const char * en utilisant le constructeur std :: string
void SomeClass :: foo(const char * _name) {
//name is of type const char *
name = std::string(_name).c_str();
}
on dirait qu'il fonctionne, mais iam ne sais pas si elle est ok
dois-je faire un vieux strcpy scolaire?
WTF o_O. Vous lui passez un 'const char *', en convertissant en 'std :: string' et en retour en' const char * '??? Que diable pour? – mingos
@mingos: Je soupçonne que l'OP a posé la question en raison d'une incertitude sur la portée et la durée de vie des choses temporaires, pensant que créer une chaîne et extraire le 'c_str()' pourrait faire la copie sans avoir à allouer explicitement des tampons et appelez strcpy. C'est une erreur parfaitement raisonnable - et commune - pour un programmeur C++ novice. –
@Marcelo: OK, je n'ai pas pris en compte une telle possibilité :). – mingos