如何使用Instruments(Leaks) – Xcode找到C或C ++代码泄漏?

int* foo = new int[10]; foo = NULL; sleep(60); 

仪器在上面的代码中没有发现任何泄漏,我如何使用仪器工具查找C或C ++代码泄漏。 我有堆栈溢出大多数解释是基于客观的C代码…

问题是编译器会在以下代码片段中优化对new的调用:

 int* foo = new int[10]; foo = NULL; sleep(60); 

因为它足够聪明,知道它没有被使用。 如果您添加代码以使用foo那么编译器将不会执行此操作,您应该看到您期望的泄漏:

 int* foo = new int[10]; foo[3] = 23; foo[8] = 45; printf("%d %d\n", foo[3], foo[8]); foo = NULL; sleep(60);