xiaohuanghuang_
xiaohuanghuang_
采纳率87%
2021-03-08 20:56

请问一下这里有什么问题?想拷贝一个二维数组

已采纳
#include<stdio.h>
#include<conio.h>
void main(){
	void copy(double (*x)[4],double (*y)[4]);
	double er[4][4]={<!-- -->{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},er2[4][4];
	void copy (er,er2);
}
void copy(double (*x)[4],double (*y)[4]){
	for (int i = 0; i < 4; i++)
	{
		for (int k = 0; k < 4; k++)
		{
			*((*y+i)+k)=*((*x+i)+k);
		}
	}
}

er不是可以表示一个指向包含四个整型数组元素的指针吗?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • Yang9325 猫叔压力大 1月前

    第六行调用函数干嘛要写返回值void?

    *y + i的意思是y[0] + i结果是一个数值,你应该写成*(y+i)

    点赞 评论 复制链接分享
  • wlj1234 wlj1234 1月前

    指针乱用,*x+i与*(x+i)结果是不同的,后者是将指针指向下一行起始地址

    *(*(y+i)+k)=*(*(x+i)+k);

    而且用

    y[i][k]=x[i][k];

    不是更明了吗

    点赞 1 评论 复制链接分享