把一个数组完全赋值给另外一个数组的语句(c语言)?

我是这么写的:
for(k=0,i=0;k<n,i<n;k++,i++)
for(m=0,j=0;m<n,j<n;m++,j++)
b[k][m]=a[i][j];
之前定义了a【6】【6】和b【6】【6】(这个不会是数组越界的问题,该情况大家不用考虑),并且在之前也已经给a数组完全赋值了...可是运行的时候复制不过去啊,b数组的值仍然是随机的...
我想知道,这样为什么不对,以及怎么做到把一个数组完全赋值给另外一个数组的语句...谢谢啦
不懂..我的k和i,m和j是同步的啊...比方说:a数组时a【1】【2】的时候,不也是复制给了b【1】【2】吗?

完全赋值??
b=a;
即可。
当然,要用你上面的写法的话,必须
b[i][j]=a[i][j];
你上下标都不一样,值当然不同啦。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-02
你的代码完全正确,你是不是在子函数中进行这些操作的,最好把代码写全,不然搞不清原因。

改成这样肯定可以:
for(i=0;i<6;i++)
for(j=0;j<6;j++)
b[i][j]=a[i][j];
第2个回答  2010-12-02
//自定数组拷贝
/* uint8 *ARRAYS_COPY(uint8 *arr1,uint8 arr1_pos,uint8 *arr2,uint8 arr2_pos,uint8 len)
{
uint8 i,*rt_arr;
rt_arr=arr2; //保留目标数组地址
i=len;
arr1+=arr1_pos; //确定复制起点
arr2+=arr2_pos; //确定写入起点
while(i--)
{*arr2++=*arr1++;}

return rt_arr;
}
相似回答