comment marche la méthode c_str
Bonjour,
j'ai essayé d'implémenter la méthode c_str, mais je rencontre plusieurs probleme, voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| char* convertStringToChar( string str )
{
char * newStr = new char[str.size() + 1];
for (int i = 0; i < str.size(); ++i)
{
newStr[i] = str[i];
}
newStr[str.size()] = '\0';
return newStr;
} |
Le probleme c'est que je fais une allocation dynamique, or dans la doc technique il ne precise pas qu'il faut libérer le pointeur, donc j'en déduis qu'ils font de cette facon :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| char* convertStringToChar( string str )
{
char newStr[TAILLE_MAX];
for (int i = 0; i < str.size(); ++i)
{
newStr[i] = str[i];
}
newStr[str.size()] = '\0';
return newStr;
} |
mais le probleme c'est que j'ai un buffer qui prend énormément de place alors que ca se trouve le string que j'utilise ne fait que quelques octets de mémoire.
Avez vous une idée de l'implémentation ?
Merci d'avance pour votre aide.