鱼C论坛

 找回密码
 立即注册
查看: 1623|回复: 6

编译无错误,但为什么不能运行呢?

[复制链接]
发表于 2015-8-22 18:41:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

#include <stdio.h>
void main()
{
        int a[3][3]={0,1,2,3,4,5,6,7,8};
        int (*p)[3];
        int f(int(*p)[3]);
        int i,j;
        p=a;
        f((*p)[3]);
}
int f(int(*p)[3])
{
        int i,j;
        for(i=0;i<3;i++)
        {
                for(j=0;j<3;j++)
                {
                        printf("%d\t",*(*(p+i)+j));
                }
        }
}
如果把int f(int(*p)[3])的内容放到main程序里,运行就没有问题,可我这个函数错在哪里了?而且连调试都无法继续了。
同样的代码,
#include <stdio.h>
void main()
{
        int a[3][3]={0,1,2,3,4,5,6,7,8};
        int (*p)[3];
        int f(int(*p)[3]);
        int i,j;
        p=a;
        for(i=0;i<3;i++)
        {
                for(j=0;j<3;j++)
                {
                        printf("%d\t",*(*(p+i)+j));
                }
        }
}
这样运行是正常输出了二维数组的值。
新建位图图像.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-22 19:24:39 | 显示全部楼层
f((*p)[3]); 改为 f( p );

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
傲天 + 1 + 1 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2015-8-22 19:38:39 | 显示全部楼层

f(p)就不是数组了,我传送的是2维数组
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-22 19:43:43 | 显示全部楼层
傲天 发表于 2015-8-22 19:38
f(p)就不是数组了,我传送的是2维数组

p 可以理解为这个二维数组的首地址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-22 21:00:58 | 显示全部楼层
哥斯拉不说话 发表于 2015-8-22 19:43
p 可以理解为这个二维数组的首地址

C语言不可以这样定义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-23 09:34:12 | 显示全部楼层
傲天 发表于 2015-8-22 21:00
C语言不可以这样定义

(*p)[3] == 3,传递 (*p)[3] 肯定不对啊,传递的时候不是传递首地址进去吗?那应该怎样定义啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-23 11:06:46 | 显示全部楼层
哥斯拉不说话 发表于 2015-8-23 09:34
(*p)[3] == 3,传递 (*p)[3] 肯定不对啊,传递的时候不是传递首地址进去吗?那应该怎样定义啊?

哦,是我理解错了,呵呵,太感谢了,是传递错了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 08:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表