我編寫了測試代碼來檢查如何使用儀器(泄漏)。我創建了一個單一視圖的應用程序,並點擊一個按鈕我已加載這樣一個新的觀點...使用儀器(泄漏)檢測C泄漏
- (IBAction)btn_clkd:(id)sender {
new_file *new = [[new_file alloc] init];
if (new) {
[self.navigationController pushViewController:new animated:YES];
new = nil;
}
}
在NEW_FILE viewDidLoad方法中,我已創建像下面泄漏...
- (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