C++ 将值重新指定给c+中的初始化二维数组+;

C++ 将值重新指定给c+中的初始化二维数组+;,c++,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??*/ } 不能:必须使用循环。不能:必须使用循环。数组在C+中不可赋值 但是,s是一个聚合,因此可以直接使用大括号初始值设定项: struct s{ int mat

我必须在不使用循环的情况下为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??*/
}

不能:必须使用循环。

不能:必须使用循环。

数组在C+中不可赋值

但是,
s
是一个聚合,因此可以直接使用大括号初始值设定项:

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

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

数组在C+中不可赋值

但是,
s
是一个聚合,因此可以直接使用大括号初始值设定项:

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

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

指定整个对象:

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

指定整个对象:

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

数组不是C++中可分配的。C++中的数组是不可分配的。