当我使用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/