如何使用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);