当我使用RegexMatcher(来自icu api)时未释放内存。
重置后内存没有被释放,每次重置都会导致丢失更多的内存(inputBuffer是UnicodeString)。

似乎只是创建一个新的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;

最佳答案

隐藏在ICU文档中的是此评论

关于c++ - icu RegexMatcher内存未释放,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42044178/

10-12 23:05