VS多线程中的堆栈溢出

Stack overflow in VS multithreading

本文关键字:堆栈 栈溢出 多线程 VS      更新时间:2023-10-16

当我尝试创建这样的线程时

someFunc(void* param){
char currFile[500000];
char currKeyBoard[24576];   
char currImage[500000]; 
char currAddInfo[12000];
}
_beginthread( someFunc, 0,NULL );

该程序因stackoverflow异常而崩溃。但是当我做这个

    someFunc(void* param){
char currFile[500000];
char currKeyBoard[24576];   
char currImage[500000]; 
}
_beginthread( someFunc, 0,NULL );

程序不会崩溃。为什么?

原因是第二个函数在堆栈上分配的内存比第一个函数少。这是太多的东西分配。

相反,使用向量,它们会在堆上分配它,因为它们管理自己的内存,所以您不必这样做。