00 marque la fin d'une chaîne de caractère donc si tu fait un printf, tu ne verras pas la suite.
De plus, ce n'est pas sûr qu'il copie bien ce qu'il y a derrière l'octet 0x00
Je pense que le mieux est de faire :
1 2 3 4 5 6 7 8 9 10 11 12
|
std::string monString;
int taille = monString.size();
char * monChar = new char[taille];
std::string::iterator p = monString.begin();
std::string::const_iterator const fin = monString.end();
char * tmp = monChar;
while(p != fin)
*tmp++ = *p++; |
Par contre tu ne pourras pas utiliser les fonctions de string.h sur ton char *.
Partager