应用程序的 主函数栈空间限制,能讨论下吗?
c语言吧
全部回复
仅看楼主
level 1
dot_wish 楼主
///////////////////////////////////////////win32 控制台应用程序const unsigned int large = 0x6FFFFFFF ;void foo(){ char limit[large] ;}int main(){ foo() ; char limit[1036096] ;}////////////////////////////////////////////////////////谁知道这样的main函数栈空间标准吗,在main的栈上能分配的最大空间是1036096 字节,即使多分配一字节,或是多定义一个变量也不行了,编译能通过,一运行就出错了,但是在其它函数里却没这种情况,要在普通函数的栈上分配太多空间的话我用的VC6 会报错:negative subscript or subscript is too large在Win32 应用程序里#include
int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { char limit[1036016] ;}这也是极限了即使分配char limit[1036017] 应用程序也会异常中止 我用的系统是WinXP,大家试试自己的系统里主函数的栈空间有多大
2005年01月21日 15点01分 1
level 7
可能与系统的硬件也有关系吧,我以前这么做过,最大只到32767,在置顶有 ◆大下标数组操作:http://post.baidu.com/f?kz=4201196你看看是不是你的意思,你上面定义的,我在WINME+mingw下,可以编译,但是运行即出错
2005年01月21日 15点01分 2
level 1
dot_wish 楼主
我可以看到异常EXCEPTION_STACK_OVERFLOW
2005年01月21日 16点01分 3
level 0
"主函数栈空间限制"这和那个没关系,静态内存分配不允许那么大,需要动态分配
2005年01月29日 17点01分 4
1