버그 해결을 위한 모든 질문을 던져
0 votes
252 views
std::string str = "I want to convert string to char*";;
char * writable = new char[str.size() + 1];
std::copy(str.begin(), str.end(), writable);
writable[str.size()] = '\0';
delete[] writable;

 

스트링을 char*로 변환하는 코드인데요. 이 코드는 메모리누수가 일어날 수 있으니 사용하지말라..라고 하더군요.

delete를 해주는데 왜 메모리 누수가 나는건가요?? 

asked (35 point) , 252 views

1 답변

0 votes
위 코드 메모리 누수 없습니다. 그러나 프로젝트 규모가 복잡해지고 변수 주기가 길어 질 수록 생길 수 있는 실수를 미연에 방지 하는 차원에서 보통 고정해서 사용합니다.

std::string str = "I want to convert string to char*";
char writable[1024];
sprintf(writable, str.c_str());
answered (14 point)

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

544 질문
703 answers
684 댓글
118,235 users