Managed memory refers to memory that is allocated and deallocated 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. For example:
for( int i = 0; i < 100; i++ ) int** leak = new int[500]; // generates memory leaks galore!
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 can you free it. If your program allocates all available system memory, then what will happen is that your system will run out of memory entirely, and your OS will flag your program and close it for using up too much memory.
Memory management prevents forgetting to release memory. In memory-managed programs, it is commonly remembered...