yuAriellexi 2018-09-24 22:34 采纳率: 100%
浏览 1188
已采纳

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

 #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]

  • 写回答

2条回答 默认 最新

  • xingjianfengaa 2018-09-25 00:30
    关注

    初始化是在你定义的时候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列

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?