我正在尝试创建一个c ++程序,用户首先声明一个2d数组,我正在使用它:
#include <iostream>
#include <ctime>
using namespace std;
int main() {
int i,o;
cout << "Ingress rows: ";
cin >> i;
cout << "Ingress columns: ";
cin >> o;
int array1[i][o];
}
所以,我想要做的是一个接收这些值并用随机数填充二维数组的函数,这是我得到的(尝试和尝试几个小时后):
void fill_array(int (*arr)[], size_t fila, size_t col) {
srand(time(NULL));
for (size_t i = 0; i < fila; i++) {
for (size_t > j = 0; j < col; j++) {
arr[i][j] = rand() % 10 + 20;
}
}
}
我不断得到错误:
错误:无法将'int()[o]'转换为'int'以将参数'1'转换为'void fill_array(int,size_t,size_t)'fill_array(array1,i,o);
任何形式的帮助都非常受欢迎。谢谢。
使用矢量。动态数组int array1[i][o];
未在C ++标准中记录。
...
#include <vector>
void fill_array(std::vector<std::vector<int>> &arr) {
srand(time(NULL));
for (size_t i = 0; i < arr.size(); i++) {
for (size_t j = 0; j < arr[i].size(); j++) {
arr[i][j] = rand() % 10 + 20;
}
}
}
int main() {
...
std::vector<std::vector<int>> array1(i, std::vector<int>(o));
fill_array(array1);
}