![]() |
1
2
默认情况下,使用Microsoft编译器在Microsoft Windows上构建的程序的默认最大堆栈大小约为1MB。 宣言
如果将堆栈声明为自动变量,则在堆栈上分配2MB。这就是为什么在你的情况下堆栈会溢出。 如果将数组声明为全局变量,则不会在堆栈上分配它,因此不会出现问题。 堆栈空间非常有限,尤其是在Microsoft Windows上(Linux的默认堆栈大小约为8 MB)。因此,除非您确切知道自己在做什么,否则通常不应该在上面分配超过几千字节的数据。
对于分配如此大量的数据,通常最好使用动态内存分配,例如
|
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |