Instrument (Leaks) 사용 방법을 확인하는 테스트 코드를 작성했습니다. 나는 하나의 뷰 응용 프로그램을 생성하고 버튼을 ...Instruments (누수)를 사용하여 C 누출 감지
new_file의 viewDidLoad 방법에- (IBAction)btn_clkd:(id)sender {
new_file *new = [[new_file alloc] init];
if (new) {
[self.navigationController pushViewController:new animated:YES];
new = nil;
}
}
, 나는 다음과 같은 누출을 만들 수 있습니다 ...이 같은 새보기를로드 한 클릭 한
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
char *c_mem = (char*) malloc(10000000);
strcpy(c_mem, "TESTING");
// free(c_mem);
}
심지어 ARC를 사용하고 할당 된 메모리는 일반 C malloc이며 사용한 후 메모리를 해제하지 않았습니다. 새 뷰를 반복해서로드했지만 악기 (누수)가 누수를 감지하지 못하고 있습니다. 이 코드는 ... 이유는 무엇입니까, 나는 올바르게 검사하고 있습니까? 당신이 팝업
고맙습니다
하지만 여기 누출은 malloc을 사용하는 C 방식입니다 ... ARC도 이것을 처리 할 것입니다 .. – Newbee
변수의 범위는 클래스의 한 방법입니다. 그렇기 때문에 메소드가 끝나면 변수가 파괴 된 것 같습니다. – wzbozon
당신은 옳은 변수이지만, 나는 동적으로 할당 된 메모리가 아닌 것 같습니다. – Newbee