Okay la domanda previous ha risposto chiaramente, ma ho scoperto un altro problema.C++ nuovo & delete e stringa e funzioni
Cosa succede se fare:
char *test(int ran){
char *ret = new char[ran];
// process...
return ret;
}
e quindi eseguirlo:
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?
}
Così, dopo la conversione del char * a stringa, non devo preoccuparsi per la cancellazione più?
Edit: Come risposta, devo delete[]
ogni new[]
chiamata, ma nel mio caso la sua non è possibile in quanto il puntatore si è perso, quindi la domanda è: come faccio a convertire char a stringa correttamente?
Ri: Modifica ... perdere il puntatore (come per la mia risposta di seguito) o (meglio ancora) non 'new' il puntatore, basta usare' std :: string' per contenere la stringa. Perché vuoi fare l'allocazione di memoria da solo? – Johnsyweb