-1

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

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 );

程序不会崩溃。为什么?

4

1 回答 1

7

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

改用向量,它们会将其分配在堆上,并且由于它们管理自己的内存,因此您不必这样做。

于 2013-07-21T14:18:03.520 回答