【发布时间】:2021-04-01 11:59:38
【问题描述】:
正如标题所说 - 我有一段非常基本的代码,它应该读取两个数字,然后是一个 2D 浮点数组。我没有收到任何错误,但是当我运行我的程序时,它崩溃并显示代码 -1073741571,我不明白为什么。
代码如下:
#include <iostream>
#include <iomanip>
#include <algorithm>
using namespace std;
void citireNrEcuatiiNecunoscuteSiMatriceaExtinsa(int& a, int& b, float c[][1001])
{
cout << "\nIntroduceti numarul de ecuatii: ";
cin >> a;
cout << "\nIntroduceti numarul de necunoscute: ";
cin >> b;
int i = a;
int j = b + 1;
cout << "\nIntroduceti elementele matricei extinse: ";
for (int contorLinie = 0; contorLinie < i; contorLinie++)
{
for (int contorColoana = 0; contorColoana < j; contorColoana++)
{
cin >> c[contorLinie][contorColoana];
}
}
}
int main()
{
int numarEcuatii, numarNecunoscute;
cout << setprecision(3);
float mat[1001][1001];
citireNrEcuatiiNecunoscuteSiMatriceaExtinsa(numarEcuatii, numarNecunoscute, mat);
}
【问题讨论】:
-
float mat[1001][1001]非常庞大。这肯定比你在堆栈上的空间要多。 -
实际上,它并没有我想象的那么大。使用 4 字节浮点数,即 4mb,所以能否做到这一点取决于您设置的堆栈大小。
-
@Carcigenicate:他在 Windows 上编写了代码。除非他更改,否则主线程的堆栈大小为 1mb。 (它在项目文件中,所以你不会在这里看到它。)
-
这是this 的副本。但是,该问题已关闭,与其他不匹配的问题重复。
-
@Carcigenicate 这就是问题所在。将 [1001] 更改为 [101] 有效。谢谢:)
标签: c++