Managed memory refers to memory that is <indexentry content="managed memory:allocating, NewObject used">allocated and de-allocated by some programmed subsystem above the new, delete, malloc,, and free calls in C++. These subsystems are commonly created so that the programmer does not forget to release memory after allocating it. Unreleased, occupied, but unused memory chunks are called memory leaks, as follows:
// generates memory leaks galore!
for( int i = 0; i < 100; i++ )
{
int** leak = new int[500];
}
In the preceding example, the memory allocated is not referenceable by any variable! So, you can neither use the allocated memory after the for loop, nor free it. If your program allocates all available system memory, then what will happen is that your system will run out of memory...