How "big" is the run-time stack?
I have some general programming questions:
A stack overflow occurs when the stack gets "too big", so, how much is too big?
Does the run-time stack have a specific size like an array? if so, how is the size determined? by the OS? the compiler?
Is it a dynamic data structure like queues and lists? if so, when does it "overflow"? when the entire physical memory is filled?
Also, if it is a dynamic data structure, does that mean that a running program is physically "fragmented"? does it occupy different seperated spots in the RAM?
Are the answers to these questions OS-dependent? language dependent? compiler dependent?