2017-02-04 2 views
2

RegexMatcher (icu api에서)를 사용할 때 메모리가 릴리즈되지 않습니다. 재설정을 수행 한 후에도 메모리가 해제되지 않습니다. 재설정 할 때마다 더 많은 메모리가 손실됩니다 (inputBuffer는 UnicodeString 임).icu RegexMatcher 메모리가 해제되지 않았습니다.

은 내가

어떤 아이디어를주십시오 누락 무슨 ... 그냥 메모리 누수 삭제 한 다음 새 RegexMatcher 객체를 생성하고 것 같다? 중환자 문서 숨겨져

UErrorCode matcherStatus = U_ZERO_ERROR; 
RegexMatcher * lastWordMatcher = new RegexMatcher(".*(^|\\p{Z})(\\S+)$", UREGEX_ERROR_ON_UNKNOWN_ESCAPES | UREGEX_UWORD, matcherStatus); 

UnicodeString lastWord; 

lastWordMatcher->reset(inputBuffer); 
if (lastWordMatcher->find(matcherStatus)) 
{ 
    lastWord = lastWordMatcher->group(2, matcherStatus); 
} 
delete lastWordFinder; 

답변

1

댓글 어플리케이션이 종료된다

, 그것을 임의로 할당에 의해 보유 된 임의의 더미 스토리지를 확보 할 함수 u_cleanup (공극)을 호출 할 수있다 ICU 라이브러리 u_cleanup()의 주요 이점은 응용 프로그램을 디버깅하거나 테스트하는 동안 메모리 누수 검사 도구를 사용할 때 발생합니다. u_cleanup()이 없으면 ICU 라이브러리가 보유한 메모리가 누출로보고됩니다.

관련 문제