kykuso 2018-11-14 14:01 采纳率: 0%
浏览 16219

【二维数组与指针】error: invalid type argument of unary '*' (have 'int')出现的原因及解决方法

#include
#include

void change();

int main()
{
printf("ÐÕÃû£º%s ѧºÅ£º%s\n","Ñî˼ºã","18090033026");
int a[3][3];
int i,j;
int * p;
p=* a;
printf("Please enter a 3x3 array:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)scanf("%d",p++);
}
p=* a;
change(p,3,3);
printf("After changing:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)printf("%d ",* (p++));
printf("\n");
}
return 0;
}

void change(int (* x)[3],int y,int z)
{
int i,j;
int m[3][3];
int * n;
n=*m;
for(i=0;i<y;i++)
for(j=0;j<z;j++)*(*(n+i)+j)=*(*(x+i)+j);
for(i=0;i<y;i++)
for(j=0;j<z;j++)*(*(x+i)+j)=*(*(n+j)+i);
}
图片说明

  • 写回答

2条回答 默认 最新

  • fenghua2010nb 2018-11-15 05:55
    关注

    void change(int (*x)[3],int y,int z)
    {
    int i,j;
    int n[3];
    int k;
    for(i =0;i<y;i++)
    {
    for(j =0;j<z;j++)
    {
    *(
    (n+i)+j) = ((x+i)+j);
    }
    }

    for(i =0;i<y;i++)
    {
    for(j =0;j<z;j++)
    {
    ((x+i)+j) = ((n+j)+i);
    }
    }
    }

    你的 *n 有问题,改为 (*n)[3],也不用再定义一个m[3][3]

    评论

报告相同问题?

悬赏问题

  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?