如果想赋值给b的第二行怎么办,谢谢。
追答memcpy((void*)((int *)b + 3), (void*)a, sizeof(a));
反正二位数组内存中也是连续的,就像:b[0][0],b[0][1],b[0][2],b[1][0],b[1][1],b[1][2],所以安排好a[]的数据一次性全部赋值也可以啊。
我是这样想的,不过具体的代码应该怎么写呢?
追答数列的存储都是按一维度存储的,二维和高维都是在一维度上划分的,。你给二维度的赋值,那一维度空间一定要满足维度。定义int b[3][3];
b[2][1] 和*(b+2*3+1)以及b[7]都是一样的。
谢啦,不过其他的大神已经给出了代码了。
忘说了,横着排
追答用循环最简单了 c++里没有一维数组初始化二维数组的定义
int main()
{
int a[6] = {1,2,3,4,5,6};
int b[2][3];
int k=0;
for(int i=0;i<2;i++)
{
for(int j=0;j<3;j++)
{
b[i][j]=a[k];
k++;
}
}
return 0;
}
2个循环嵌套下就行了
多谢了,不过另一位大神给出了更好的解答。