2009-10-26 6 views
1

CFRelease를 사용하여 CFStringTokenizerCreate 호출에서 가져온 CFStringTokenizerRef를 릴리스합니다. 그러나 악기는이 지역 주변에서 메모리 누수를보고하고 있습니다. 내가 놓친 게 있니?CFStringTokenizerCreate에서 생성 된 메모리를 해제하는 방법은 무엇입니까?

 

    CFStringTokenizerRef tokenRef = CFStringTokenizerCreate(NULL, 
            (CFStringRef)contents, 
            CFRangeMake(0, contents.length), 
            kCFStringTokenizerUnitWordBoundary, 
            NULL); 

    CFStringTokenizerTokenType tokenType; 
    // leak reported here 
    while ((tokenType = CFStringTokenizerAdvanceToNextToken(tokenRef)) != kCFStringTokenizerTokenNone) 

} 

CFRelease(tokenRef); 
+0

잠시 후 빠진 중괄호가있는 것 같습니다.이 CFRelease는 같은 범위에 없습니다. 복사/붙여 넣기 오류입니까? –

답변

0

Create Rule 다음에 CFStringTokenizerCreate가옵니다. 그래서 예상대로 전화하고 있습니다.

잠시 후 빠진 중괄호가있는 것 같습니다.이 CFRelease는 같은 범위에 없습니다. 복사/붙여 넣기 오류입니까?

+0

제시된 코드는 구문 오류가 있습니다. while은 조건을 따르는 명령문을 필요로하고 표시되는 코드는 none (외부 복합 명령문이나 함수/메서드 본문을 닫는 중괄호가 바로 뒤에 오는 조건)을 갖습니다. 표시된 코드가 유효 할 때까지 어떤 범위가 있는지 평가하는 것은 너무 이른 것 같습니다. –

관련 문제