У меня вопрос previous. Ответ на вопрос был дан однозначно, но я обнаружил еще одну проблему.C++ new & delete and string & functions
Что делать, если я:
char *test(int ran){
char *ret = new char[ran];
// process...
return ret;
}
А затем запустить его:
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?
}
Таким образом, после преобразования символ * в строке, не придется беспокоиться о стиранию больше?
Edit: Как ответил, что я должен delete[]
каждый new[]
вызов, но в моем случае его не представляется возможным, так как указатель потерялся, поэтому возникает вопрос: как преобразовать символ в строку правильно?
Re: Edit ... Или don 't потерять указатель (согласно моему ответу ниже) или (еще лучше) не 'new' указатель, просто используйте' std :: string', чтобы удерживать строку. Почему вы хотите сами распределить память? – Johnsyweb