그래, 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?
}
그래서 문자열로의 char *로 변환 후, 나는 더 이상 삭제에 대해 걱정할 필요가 없습니다?
편집 : 어떻게 제대로 문자열로 문자 변환을 수행합니다으로, 나는 delete[]
각 new[]
전화를 가지고 있지만, 포인터가있어 손실 이후 질문은 그래서 내 경우에, 불가능의 대답?
Re : 편집 중 ... 포인터를 잃어 버리거나 (더 좋은 방법은) 포인터를'new'하지 말고 그냥'std :: string'을 사용하여 문자열을 유지하십시오. 왜 스스로 메모리 할당을하고 싶습니까? – Johnsyweb