윌이 누출 메모리 :C++ 메모리 누수가 확인
std::string GetStringFromUser(std::string sPrompt, int nMaxBuffSize)
{
int i, ch;
char *psBuffer = (char *) _alloca(nMaxBuffSize);
fprintf(stderr, "%s", sPrompt.c_str());
fflush(stderr);
for (i = 0; (i < nMaxBuffSize) && ((ch = getchar()) != EOF) && (ch != '\n'); i++)
{
psBuffer[i] = (char) ch;
}
psBuffer[i] = '\0';
return (std::string) psBuffer;
} // GetStringFromUser()
내 낫다고 중 하나에 의해 작성된하지만 psBuffer은 절대로 삭제되지 것처럼 보인다.
왜 모호한 몸입니까? 왜 그냥'std :: string line; std :: getline (std :: cin, line); 반환 선;'? 분명히 메모리 누수가 없습니다. – chris
사이드 노트에서, 사용자에게'stderr'를 촉구하는 것이 이상하게 보입니다. – user2802841
나는 그것을 좋아한다, 그것은 캡슐에 넣어졌다. 그러나 당신의 더 나은 자 중의 한 명이 마이크로 최적화를하는 것에 사로 잡혀있는 것으로 보입니다. 'std :: getline'을 사용하여 다른 메소드에 대한 프로파일 링을 한 적이 있다면 결과를 알려줍니다. – Claudiordgz