在C语言中如何用把二维数组中的一行贼给一维数组?

如题所述

第1个回答  2019-11-28
按列遍历,并输出到一维数组即可.

void covert(int a[M][N], b[M*N]){ int i,j,n; for(i = n = 0; i < N; i++) { for(j = 0; j < M; j ++) { b[n++] = a[j][i]; } }}本回答被网友采纳
第2个回答  2019-11-28
int i,j,a[3][4],b[12];
int n=0;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
{
b[n++]=a[i][j];
}

或者用这个,memcpy(b , a[0],16); 后面的16表示4个整形,16个字节,但是我怕你搞错,还是走循环,嵌套赋值吧
第3个回答  2019-11-28
一个一个复制
for ( int i = 0; i < 3; ++i )
b[i] = a[0][i];
//数组不支持直接拷贝。 不能整体赋值,这点不像结构体。
相似回答