当我定义
void tfooo(){
int arr[SOME_LARGE_NUMBER];
// some code here
}
我得到堆栈溢出,但是当我添加 static 关键字时
void tfooo(){
static int arr[SOME_LARGE_NUMBER];
// some code here
}
一切都很好。
有什么区别?相对于动态数组,静态数组不是总是在堆栈上定义的吗?
最佳答案
通常情况下,声明为 automatic 的对象分配在堆栈(相对较小)上,而声明为 static
的对象分配在其他地方。
注意,这取决于您的机器和编译器。
关于c - 使用 c 数组时堆栈溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50573999/