Microsoft MVP성태의 닷넷 이야기
[답변]: [답변]: [답변]: 당연히 도움이 되지요. [링크 복사], [링크+제목 복사],
조회: 11436
글쓴 사람
정성태 (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)
111정성태3/19/20059678    답변글 [답변]: 닷넷 프레임워크 배포
107안연준3/17/20058922[-_-]스마트 클라이언트에 관련 된 질문[-_-]
110정성태3/19/20059728    답변글 [답변]: [-_-]스마트 클라이언트에 관련 된 질문[-_-]
116안연준3/21/20059324        답변글 [답변]: 친절한 답변 고맙습니다.
98김용국3/18/200511019정성태님... 연결이 준비됬습니다
99정성태3/2/200511903    답변글 [답변]: 정성태님... 연결이 준비됬습니다
100김용국3/18/20058750        답변글 [답변]: 죄송합니다! 급히올리느라 file path의 변경을 하지않고 그냥올렸네요....!
101정성태3/2/20059012            답변글 [답변]: [답변]: 죄송합니다! 급히올리느라 file path의 변경을 하지않고 그냥올렸네요....!
102김용국3/18/20059097                답변글 [답변]: 거듭죄송하네요..... 후~~~주소를 변경하고 빌드를 다시 했습니다....
103정성태3/2/20058961                    답변글 [답변]: [답변]: 거듭죄송하네요..... 후~~~주소를 변경하고 빌드를 다시 했습니다....
104김용국3/2/20059222                        답변글 [답변]: 네... 빨리 검토해 봐 주셔서 감사합니다~~
105정성태3/2/20058441                            답변글 [답변]: [답변]: 네... 빨리 검토해 봐 주셔서 감사합니다~~
106김용국3/2/20058915                                답변글 [답변]: 답변감사합니다!
91김용국2/28/200510692IE에 WindowsFormControl을 올려 실행하면 이런에러가 나네요???파일 다운로드1
92정성태2/28/200512012    답변글 [답변]: IE에 WindowsFormControl을 올려 실행하면 이런에러가 나네요???
93김용국2/28/200510913        답변글 [답변]: 답변감사합니다... 재질문을 드립니다
94정성태2/28/200511485            답변글 [답변]: [답변]: 답변감사합니다... 재질문을 드립니다
95김용국2/28/200511590                답변글 [답변]: IE주소창에서 해당주소로 실행을 해보니....디버깅 PopUp화면이...^
96정성태2/28/200510649                    답변글 [답변]: [답변]: IE주소창에서 해당주소로 실행을 해보니....디버깅 PopUp화면이...^
97김용국3/1/200511181                        답변글 [답변]: 준비되는데로 말씀드리겠습니다 ^^
88안지환2/22/200512737^^ 사이트 잘 들러보았습니다.
89정성태2/22/200512712    답변글 [답변]: ^^ 사이트 잘 들러보았습니다.
85한기열2/22/200511309정성태님 홈같은 부드러운 페이지 넘김?은 어떻게 구현하나요?
86정성태2/22/200512016    답변글 [답변]: 정성태님 홈같은 부드러운 페이지 넘김?은 어떻게 구현하나요? [2]
84김용국2/21/200512089Smart Client에 관한 문의 드립니다.
87정성태2/22/200512140    답변글 [답변]: Smart Client에 관한 문의 드립니다.
... 91  92  93  [94]  95  96  97