This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: DYNAMIC MEMORY MANAGEMENT Explicit memory management • Uses malloc/new to allocate • Uses free/delete when the object is no longer in use • Used in C, C++, Pascal, etc. • Prone to bugs • Premature free freeing too soon int *p = new int; *p = s; delete p; *p = 4; The program may crash when memory is allocates again since the allocation my return the same memory that is still in use. One way of preventing premature frees during debugging is commenting frees. 1. Uncomment the frees until you find the premature free. 2. Premature frees will make your program crash most of the time. • Not freeing memory memory leak This is not as serious of a problem. The memory requirements (memory footprint) may grow and grow until the program no longer fits in RAM and the OS will start swapping in/out to disk. This slows sown the execution of the program. If the memory footprint is larger than the RAM and swapspace, malloc/new will return 0/NULL. After this, you need to restart the program. Memory leaks are bad for long living programs. If you have to choose, choose a memory leak....
View Full Document
This note was uploaded on 02/02/2012 for the course CS 251 taught by Professor Staff during the Fall '08 term at Purdue.
- Fall '08
- Data Structures