Microsoft MVP성태의 닷넷 이야기
[답변]: [답변]: [답변]: 당연히 도움이 되지요. [링크 복사], [링크+제목 복사],
조회: 13562
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
부모글 보이기/감추기

메모리 누수가 있겠는데요.

HRSULT FuncB(BSTR *bstr)
{
.........
(*bstr) = SysAllocString(L"Temp1"); /////// 1번, 여기서 한번 메모리 할당.

if( ...)
{
SysFreeString(*bstr); ////// 2번, 메모리 해제
(*bstr) = SysAllocString(L"Temp2"); ///////// 3번, 메모리 할당.

.........
FuncB(bstr); /// 4번, 이후 위의 1번을 다시 호출.
}
}


위에서 보시면. 1번으로 할당된 후, 2번에서 해제하는 것은 짝이 맞는 데요.
3번에서 다시 할당한 후, 4번 단계에서 재귀호출이 되어 다시 1번 단계의 할당으로 들어가게 되는 데요.
이 경우... 다음과 같은 코드와 같죠.

char *pTemp = new char[ 50 ];
pTemp = new char[ 90 ];

따라서, 이전에 할당된 것이 메모리 해제가 안되었으므로 메모리 누수가 나오게 됩니다.
이걸 방지하기 위해서는 FuncB 의 1번 단계 이전에,
if ( *bstr == NULL )
{
   SysFreeString( *bstr );
}

이란 코드를 넣어주어야 합니다.









[최초 등록일: ]
[최종 수정일: 1/19/2005]


비밀번호

댓글 작성자
 




... 91  92  [93]  94  95  96  97 
NoWriterDateCnt.TitleFile(s)
132정성태4/1/200511362            답변글 [답변]: [답변]: [답변]: SmartClient 배포와 관련해서 무엇이 빠졌는지 좀 알려주시면 감사하겠습니다....!
133김용국4/1/200511545                답변글 [답변]: [답변]: [답변]: [답변]: SmartClient 배포와 관련해서 무엇이 빠졌는지 좀 알려주시면 감사하겠습니다....!
126구정모3/31/200512845이홈의 효과는 어떻게???
128정성태3/31/200511991    답변글 [답변]: 이홈의 효과는 어떻게???
124배재현3/30/200511688Smart Client 문제로 이렇게 질문을 하나 올리게 됐습니다.^^;;
125정성태3/30/200511473    답변글 [답변]: Smart Client 문제로 이렇게 질문을 하나 올리게 됐습니다.^^;;
121안연준3/23/200511214이벤트 관련 문제
122정성태3/23/200511112    답변글 [답변]: 이벤트 관련 문제
120안연준3/23/200511069정성태님.... 오프라인 문제 질문 입니다. [1]
123정성태3/23/200511270    답변글 [답변]: 정성태님.... 오프라인 문제 질문 입니다. [1]
117정준명3/21/200512117COM+ 메소드 작성시...
118정성태3/29/200511749    답변글 [답변]: COM+ 메소드 작성시... [1]
109김용국3/18/200512687IE에 Docking된 WinFormControl내의 특정 메소드에 값을 보내기 .. 잘 되기는 하는데 한가지 문제가 ...
112정성태3/19/200511821    답변글 [답변]: IE에 Docking된 WinFormControl내의 특정 메소드에 값을 보내기 .. 잘 되기는 하는데 한가지 문제가 ...
113김용국3/19/200511815        답변글 [답변]: [답변]: IE에 Docking된 WinFormControl내의 특정 메소드에 값을 보내기 .. 잘 되기는 하는데 한가지 문제가 ...
114정성태3/19/200511762            답변글 [답변]: [답변]: [답변]: IE에 Docking된 WinFormControl내의 특정 메소드에 값을 보내기 .. 잘 되기는 하는데 한가지 문제가 ...
115김용국3/21/200511232                답변글 [답변]: [답변]: [답변]: [답변]: IE에 Docking된 WinFormControl내의 특정 메소드에 값을 보내기 .. 잘 되기는 하는데 한가지 문제가 ... [1]
119김용국3/22/200511248                    답변글 [답변]: 정상태님 아주 잘 해결 되었습니다.... 감사합니다!
108guest3/17/200511386닷넷 프레임워크 배포
111정성태3/19/200511856    답변글 [답변]: 닷넷 프레임워크 배포
107안연준3/17/200511069[-_-]스마트 클라이언트에 관련 된 질문[-_-]
110정성태3/19/200511955    답변글 [답변]: [-_-]스마트 클라이언트에 관련 된 질문[-_-]
116안연준3/21/200511377        답변글 [답변]: 친절한 답변 고맙습니다.
98김용국3/18/200513252정성태님... 연결이 준비됬습니다
99정성태3/2/200514300    답변글 [답변]: 정성태님... 연결이 준비됬습니다
100김용국3/18/200511281        답변글 [답변]: 죄송합니다! 급히올리느라 file path의 변경을 하지않고 그냥올렸네요....!
... 91  92  [93]  94  95  96  97