Envoyé par Luc Hermitte
Petite question, maintenant que les plus gros problèmes ont été résolus. C'est quoi l'intérêt du stringtochar() ?
- Si c'est pour obtenir un pointeur sur (const) char vers un buffer zéro-terminé (ou non) que tu n'altèrera pas, tu as std::string::c_str() (ou std::strig::data())
- Si c'est pour obtenir un pointeur sur char vers un buffer modifiable (tu as le new + std::string::copy ou strncpy effectivement), mais attention que ton buffer modifiable n'est modifiable qu'en contenu et non en longueur ; et qu'à faire des new à la main, il y a des risques de fuites de mémoire). L'intérêt me parait assez limité.
- Si c'est pour utiliser une API C mal codée (/ancienne) qui attend un pointeur sur char vers un buffer qui ne sera jamais modifié par la fonction, alors ce doit être un des rares cas où le const_cast sur le c_str() est acceptable. Rendre l'API const-correcte est la solution à priviliéger quand on peut la modifier.