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

Instrument is not finding any leak in above code, how do I use Instrument tool to find C or C++ code leaks. I have stack overflowed most of the explanation is based on objective C codes...

4

1 回答 1

3

The issue is that compiler will optimize out the call to new in the following code fragment:

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

as it's smart enough to know that it's not being used. If you add code to use foo then compiler won't do this and you should see the leak you are expecting:

int* foo = new int[10];

foo[3] = 23;
foo[8] = 45;

printf("%d %d\n", foo[3], foo[8]);

foo = NULL;
sleep(60);
于 2013-02-11T12:26:36.883 回答