How do I figure out how large my programs stack is? What do I add up for memory, what else goes in, etc.... What about the heap? I need this to specify the sizes of these in my Module Definition for a Windows program.
How do I figure out how large my programs stack is? What do I add up for memory, what else goes in, etc.... What about the heap? I need this to specify the sizes of these in my Module Definition for a Windows program.
Your programs stack size is not really fixed. When you call a function, you use more stack space, if that function calls a function, more, and so on. Recursive functions can grow a large stack. On most OS's, Windows included, there is a minimum stack size but it dynamically grows to suit.
Heap depends on how much dynamic memory you have allocated. Windows implements a flat 32 bit addressing scheme. Your program is thus limited to 4G. Your heap and stack are in there, along with your code and a few other things. Memory is paged into and out of memory from the pagefile as necessary, (thus you do not need 4G of RAM to run a 4G program, just a big pagefile).
You should not need this information up front to write a Windows program.
Wave upon wave of demented avengers march cheerfully out of obscurity unto the dream.