Bonjour,
j'ai essayé d'implémenter la méthode c_str, mais je rencontre plusieurs probleme, voici mon code :
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
Avez vous une idée de l'implémentation ?
Merci d'avance pour votre aide.
Partager