创建动态二维数组与二维数组初始化

#include <iostream>
using namespace std;

int main()
{

    int row, column;
    int sz;
    cout << "Enter the size of matrix, 2 * 2 or 3 * 3" << endl;
    scanf("%d%*c%d", &row, &column);
    sz = row * column;

    int **a = new int *[row];
    for (int i = 0; i < row; i++)
    {
        a[i] = new int[column]; 
    }
    //cout << "Please enter " << sz << " element of matrix:" << endl;
    a[3][3] = {{6, 1, 1}, {4, -2, 5}, {2, 8, 7}};

}

error: expected expression
a[3][3] = {{6, 1, 1}, {4, -2, 5}, {2, 8, 7}};
我想知道为什么这样做不对?我这样做的理由是a[3] = {1, 2, 3};
这样做是不是不是初始化,因为我已经动态分配了内存,已经创建了数组,所以a[3][3]= {{6, 1, 1}, {4, -2, 5}, {2, 8, 7}};是赋值多个值到一个数组元素a[3][3]


莫回无
浏览 1317回答 2
2回答

largeQ

初始化是在你定义的时候int a[3][3] = {{6, 1, 1}, {4, -2, 5}, {2, 8, 7}};这样是没毛病的,而在定义之后a[3][3] = {{6, 1, 1}, {4, -2, 5}, {2, 8, 7}};这是赋值,a[3][3]这个楼上所说是第4行的第4列

12345678_0001

数组是从0开始的 a[3][3]是第四行第四列,这样看就错误明显,你分配的不够。
打开App,查看更多内容
随时随地看视频慕课网APP