I have some questions related to memory structure.
Are stack and heap determined by OS? or physically are they separated?
If they are determined by OS, which OS has the stack and heap as component of memory structure except Windows?
As I know default stack size is 1MB and I can expand the size manually, but why default size is so small?
And if stack size is 1MB, I can not hold data that exceed 1MB in a local variable?
And my last question is, is there any reason that programmer needs to be more aware of memory structure if he writes unmanaged code (e.g. native C++) rather than managed code (e.g. C#)?