I write a piece of test code in VS2005 like this:

```
#include <stdio.h>

class Base {
public:
    Base() {printf("Base +\n");};
    ~Base() {printf("Base -\n");};
    char val[1024 * 1024 * 100];
};

void main()
{
    Base *p = new Base();
    return;
}

```

build, open a cmd window, then execute this console application.
open windows task manager to watch memory usage status.

I find two things:
1 the destructor is not called;
2 there is no memory leak from the windows task manager result. 

is memory deleted by C++ runtime, or is it deleted by OS when the process exit? I just wonder the details about what happens to 100MB meory allocated in contructor after the main() return. If someone can tell me it is appreciated, and thanks.