我用它在 cpp 中分配一个二维数组:
int s[n][2];
但似乎当 n 非常大(高达 1e6)时,这会产生运行时错误(退出代码:11)。
如何解决这个问题?
最佳答案
那不是动态分配。此外,如果 n
是一个变量,它甚至不是有效的 ANSI C++,因为您不能声明条目数可变的数组。
要正确地动态分配,请考虑使用 std::vector
。
#include <vector>
//...
// Simulate s[n]
std::vector<std::vector<int>> s(n, std::vector<int>(2));
//..
// You can now use s similar to a 2 dimensional array.
如果出于某种原因,您需要二维数组的数据是连续的,请考虑此处的答案:
关于c++ - C++中分配的大小限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31014310/