yuAriellexi
2018-09-25 06:34
采纳率: 52.4%
浏览 1.1k

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

 #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 08: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列

    打赏 评论
  • zhh95 2018-09-25 07:27

    数组是从0开始的 a[3][3]是第四行第四列,这样看就错误明显,你分配的不够。

    打赏 评论

相关推荐 更多相似问题