using namespace std;
int dp[1001][1001];
int main() {
...
}
在这种情况下,不存在运行时错误。
但是,
using namespace std;
int main() {
string A, B;
cin >> A >> B;
int dp[1001][1001];
....
}
如果我编写这样的代码,则会出现运行时错误。 甚至 main 函数的第一行也不起作用。
你能告诉我为什么会发生这个错误吗?
感谢您阅读我的问题。
最佳答案
当你在main()
之前声明一个变量时,它是全局变量,位于静态内存中。如果在 main()
中声明它,它就是一个本地变量,(实际上,尽管 C++ 标准没有强制要求)位于堆栈.总内存中只有一小部分分配给堆栈。如果您同意其大小,则会出现堆栈溢出。这就是您的情况,因为 int dp[1001][1001]
通常需要大约 4 MB 或 8 MB,具体取决于 sizeof(int)
。
关于c++ - 制作二维数组时出现运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64273418/