1) I know static memory is released automatically when the object goes out of scope and I know dynamic memory doesn't go out of scope but must be released explicitly. However, can static memory be release on demand, explicitly, or must you rely on scope to release it?
2) When loading a program into my computer the program often says "needs X mB of RAM". Is that X amount of RAM needed to store all the variables, functions, virtual tables, etc used in the program? If so, how do I determine how much RAM my programs "require"? I know the amount of RAM needed for my programs at this time is an insignificant amount of memory compared to whats available in RAM on most computers these days at this point, but I'm still curious.