请问如何把一个二维数组中的一行,赋值给另外一个一维数组?

时间:2021-10-01 18:49:54
例如
 int a[2][3] ={1,2,3,4,5,6};
 int b[3];

 b = a[0];

这样赋值好像不对?

6 个解决方案

#1


memcpy(b , a[0],3);

#2


能说说为什么 b = a[0];不成么?

b不就是代表一个地址么,而a[0]我理解也应该是一个地址,为什么不成呢?

#3


b是数组,指针和数组还是有一些区别的

#4


一个一个复制阿。

for ( int i = 0; i < 3; ++i )
   b[i] = a[0][i];

//
数组不支持直接拷贝。
int a[2] = {0,1};
int b[2] = a; //error

#5


akirya,你的方法可行,不过有一个笔误吧
memcpy(b , a[0],12);

三个整型共12个字节

#6


数组不能整体赋值,这点不像结构体。
就是这样。

#1


memcpy(b , a[0],3);

#2


能说说为什么 b = a[0];不成么?

b不就是代表一个地址么,而a[0]我理解也应该是一个地址,为什么不成呢?

#3


b是数组,指针和数组还是有一些区别的

#4


一个一个复制阿。

for ( int i = 0; i < 3; ++i )
   b[i] = a[0][i];

//
数组不支持直接拷贝。
int a[2] = {0,1};
int b[2] = a; //error

#5


akirya,你的方法可行,不过有一个笔误吧
memcpy(b , a[0],12);

三个整型共12个字节

#6


数组不能整体赋值,这点不像结构体。
就是这样。