C++ nouveau & supprimer et string & fonctions

Bon, précédente question a été répondu clairement, mais j'ai découvert un autre problème.

Ce que si je fais:

char *test(int ran){ 
    char *ret = new char[ran]; 
    //process... 
    return ret; 
} 

Et ensuite l'exécuter:

for(int i = 0; i < 100000000; i++){ 
   string str = test(rand()%10000000+10000000); 
   //process... 

   //no need to delete str anymore? string destructor does it for me here?
} 

Donc, après la conversion du char* string, je n'ai pas à vous soucier de la suppression de plus?

Edit: Comme réponse, je delete[] chaque new[] appel, mais sur mon cas, ce n'est pas possible puisque le pointeur s'est perdu, donc la question est: comment puis-je convertir char à chaîne correctement?

  • Re: Modifier... Ou de ne pas perdre le pointeur (comme par ma réponse ci-dessous) ou (mieux encore) de ne pas new le pointeur, il suffit d'utiliser std::string pour contenir la chaîne. Pourquoi voulez-vous faire de l'allocation de mémoire vous-même?
InformationsquelleAutor Newbie | 2010-06-03