C++ 二维阵列初始化?

C++ 二维阵列初始化?,c++,arrays,C++,Arrays,如何通过从用户获取数组元素来初始化2d数组 #include <iostream> using namepace std; int main() { int row, col; int arr[][]; for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { cout << "Elements of Array :" <

如何通过从用户获取数组元素来初始化2d数组

#include <iostream>
using namepace std;
int main()
{
    int row, col;
    int arr[][];
    for (int i = 0; i < row; i++) {
        for (int j = 0; j < col; j++) {
            cout << "Elements of Array :" << ' ';
            cin >> arr[i][j];
        }
    }
    return 0;
}
#包括
使用namepace-std;
int main()
{
int row,col;
int arr[][];
对于(int i=0;i
以这种方式初始化时,必须指定2D数组的边界

假设行数和列数可用,将
int-arr[][]
替换为
int-arr[row][col]
可以解决您的问题

以下代码可能会有所帮助:

    #include <iostream>
    using namespace std;
    int main()
    {
        int row, col;
        cout << "Number of rows : ";
        cin >> row;
        cout << "Number of columns : ";
        cin >> col;
        int arr[row][col];
        for (int i = 0; i < row; i++) {
            for (int j = 0; j < col; j++) {
                cout << "Enter value for row " << i << " column " << j << " : ";
                cin >> arr[i][j];
            }
        }
        cout << "Elements of Array :" << endl;
        for (int i = 0; i < row; i++) {
            for (int j = 0; j < col; j++) {
                cout << arr[i][j] << " ";
            }
            cout << endl;
        }
        return 0;
    }
#包括
使用名称空间std;
int main()
{
int row,col;
cout>行;
cout>col;
国际铁路[世界其他地区][col];
对于(int i=0;i不同于C++,C++不能用变量初始化数组;值必须固定。
与任何语言相关的问题一样,总是有一种方法可以绕过这个问题。
在这种情况下,最好的方法是使用指针并创建自己的动态数组

#include <iostream>
using namespace std;
int main()
{
    int row, col;
    cout << "Number of rows : ";
    cin >> row;
    cout << "Number of columns : ";
    cin >> col;
    //init the pointer array
    int **arr =new int*[row] ;
    for (int i = 0; i < row; i++) 
    {
        arr[i] = new int[col];// init the columns for each row
        for (int j = 0; j < col; j++) 
        {
            cout << "Enter value for row " << i << " column " << j << " : ";
            cin >> arr[i][j];
        }
    }
    cout << "Elements of Array :" << endl;
    for (int i = 0; i < row; i++) 
    {
        for (int j = 0; j < col; j++) 
        {
            cout << arr[i][j] << " ";
        }
    }
    cout << endl;
    return 0;
}
#包括
使用名称空间std;
int main()
{
int row,col;
cout>行;
cout>col;
//初始化指针数组
int**arr=新int*[行];
对于(int i=0;i你尝试过什么,为什么失败了?你考虑过在之前的数百个答案中搜索吗?需要更多关于你在做什么的详细信息#包括使用namepace std;int main(){int row,col;int arr[][];for(int i=0;将问题中的代码作为注释)。此外,您还需要指定是否要动态分配或不.int ARR [ROC] [COL];是否是有效的C++。C++不允许VLAs。虽然一些编译器支持此作为扩展。