Bonjour,

j'ai essayé d'implémenter la méthode c_str, mais je rencontre plusieurs probleme, voici mon code :

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;
}
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[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.