C++ 数组-运行时错误:类型为';int[*]和#x27;
用户可以输入两个整数n,k:kC++ 数组-运行时错误:类型为';int[*]和#x27;,c++,arrays,C++,Arrays,用户可以输入两个整数n,k:k
#include <iostream>
using namespace std;
int main(){
int n, k;
int scores[n];
cin >> n >> k;
for (int i = 0; i < n; i ++){
cin >> scores[i];
}
}
如果总数组“分数”由5个元素组成,分数[3]怎么可能超出范围?在读取数据之前,
n
未初始化且具有不确定的值
必须在阅读后使用n
#include <iostream>
using namespace std;
int main(){
int n, k;
cin >> n >> k;
int scores[n]; // move this
for (int i = 0; i < n; i ++){
cin >> scores[i];
}
}
如果C++编译器不编译上述代码,则应该使用更好的C++编译器。对于这样的简单错误,现代C++编译器不应该产生任何警告消息。<代码> int分数[n];
在标准c++
中,变量n
必须是编译时常量。标准不允许使用VLA。谢谢你的提示!如何用std::vector定义一个包含n行和k列int[n][k]的二维数组?我尝试了向量矩阵(行,列),但它不起作用。使用构造函数向量(num,initial_value)
,它可以写成向量矩阵(行,向量(列))
#include <iostream>
using namespace std;
int main(){
int n, k;
cin >> n >> k;
int scores[n]; // move this
for (int i = 0; i < n; i ++){
cin >> scores[i];
}
}
#include <iostream>
#include <vector>
using namespace std;
int main(){
int n, k;
cin >> n >> k;
vector<int> scores(n);
for (int i = 0; i < n; i ++){
cin >> scores[i];
}
}