今天在实现二维数组的复制功能时,竟然出现了好多问题,还是太不小心了。
我们知道,平时进行矩阵复制,无非是二重循环进行赋值操作,所以今天想改用利用memcpy进行复制操作,当然一维数组的复制在上一篇文章已经练习过了
需要注意的问题是:
复制的本质是利用:行+变量字节数*列 这种表达,所以目标数组的行数一定是固定的
刚开始想到项目中行数是未知的,默认为空,结果程序逻辑问题,不停的溢出,所以要小心
#includevoid print(int *data,size_t m,size_t n); //二维数组显示子函数int main(void){ int src[][3]={ { 1,2,3},{ 4,5,6},{ 7,8,9},{ 1,2,3},{ 4,5,6},{ 7,8,9}}; int des[6][3]={0,0};//要小心,行数固定 printf("%d",sizeof(src)); print(src,6,3); memcpy(des,src,sizeof(src)); print(des,6,3); return 1;}//二维子函数显示功能void print(int data[][3], size_t m,size_t n){ int i,j; printf("\n"); for(i=0;i