在c ++中将值重新分配给初始化的二维数组

时间:2014-08-16 11:38:45

标签: c++

我必须在不使用循环的情况下为mat(s中的二维数组)赋值。

struct s{
 int mat[2][2];
};

int main()
{
 s *obj=new s[10];
 obj[0].mat[][]={{1,2},{5,6}};   /*error----how to assign value like this??*/
}

3 个答案:

答案 0 :(得分:4)

分配整个对象:

int main()
{
    s obj { { {1,1}, {1,1} } };
    obj = s { { {2,2}, {2,2} } };
}

答案 1 :(得分:2)

数组不能在C +中分配。

但是s是一个聚合,所以你可以直接使用一个大括号初始化器:

struct s{
 int mat[2][2];
};

int main()
{
 s obj = { {1,2} , {5,6} }; 
}

答案 2 :(得分:0)

你不能:你必须使用循环。