如何使用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 %dn", foo[3], foo[8]);
foo = NULL;
sleep(60);

最新更新