xiaohuanghuang_
2021-03-08 20:56
采纳率: 77.8%
浏览 37

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

#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条回答 默认 最新

  • 猫叔压力大 2021-03-09 18:01
    已采纳

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

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

    已采纳该答案
    打赏 评论
  • wlj1234 2021-03-08 22:10

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

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

    而且用

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

    不是更明了吗

    1 打赏 评论

相关推荐 更多相似问题