Cyberdene opened this issue on May 14, 2012 ยท 35 posts
kawecki posted Sun, 20 May 2012 at 10:12 PM
Quote - No, Windows won't. When a program tries to allocate more memory than is available to it, the allocation will return with an error code. The program can then respond to the error code.
This is the theory, but not always happens. The programm code can request a memory block, but the programmer forgot to chect if the returned handle was valid. Later the code will try to use this memory that does not exist and in some point Windows will crash.
Another case is more subtle. Let suppose that you have 500 Mb of still available memory (physicall + virtual) and the programm requests 490 Mb of memory so Windows will return a valid handle and the programm will be able to use it, but this only left 10 Mb of free memory. Windows also needs memory and if your program wants to open a dialog box or menu, Wndows will not have memory to do it, so the dialog box opens empty, the icons from your destok begin to vanish and in the end you will not able to do anything. Restart the computer or at least shut down your program with CTL-ALT-DEL.
Another case is more complicated. You have 2 GB of free memory (physical + virtual) the program request a block of 400 MB and this time the programm displays a message that there is not enough memory, why???, how is possible to not have memory if there are 2 GB of free memory. Well you have 2 GB of available memory, but the memory is so fragmented that there do not exist a continuous block of 400 MB of free memory. Restart the computer.
Stupidity also evolves!