鱼C论坛

 找回密码
 立即注册
查看: 1284|回复: 4

二维数组定义问题

[复制链接]
发表于 2020-11-10 15:31:58 | 显示全部楼层 |阅读模式

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

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

x
数组g中莫名其妙多了g[5][3] = 1的元素。为什么呢
int main(void) {
        int g[][7] = {
                {6,7,4,8,1,2,5},
                {2,2,1,1,1,1,4},
                {2,1,1,1,1,6,9},
                {2,1,1,1,1,1,3},
                {5,6,7,1,1,2,3},
        };
        Point start;
        start.x = 2;
        start.y = 2;
        int area = fun(g, start,g[start.x][start.y],5,7);
        for (int i = 0; i < 5; ++i) {
                for (int j = 0; j < 7; ++j)
                        printf("%2d", g[i][j]);
                putchar('\n');
        }
        printf("%d\n", area);
}
]TDB4T5)E`GM@L2YM1R4%KX.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-10 16:25:21 | 显示全部楼层
这样试试?
int main(void) {
        int g[][7] = {
                {6,7,4,8,1,2,5},
                {2,2,1,1,1,1,4},
                {2,1,1,1,1,6,9},
                {2,1,1,1,1,1,3},
                {5,6,7,1,1,2,3},
        };
        Point start;
        start.x = 2;
        start.y = 2;
        int area = fun(g, start,g[start.x][start.y],4,6);
        for (int i = 0; i < 5; ++i) {
                for (int j = 0; j < 7; ++j)
                        printf("%2d", g[i][j]);
                putchar('\n');
        }
        printf("%d\n", area);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-10 16:26:53 | 显示全部楼层
      对于
        int g[][7] = {
                {6,7,4,8,1,2,5},
                {2,2,1,1,1,1,4},
                {2,1,1,1,1,6,9},
                {2,1,1,1,1,1,3},
                {5,6,7,1,1,2,3},
        };
    的定义而言,g[5][3] 已经显然是下标越界了,也就是说,根本无法访问这个元素,楼主是如何发现这个问题的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-15 21:32:04 | 显示全部楼层
jackz007 发表于 2020-11-10 16:26
对于

    的定义而言,g[5][3] 已经显然是下标越界了,也就是说,根本无法访问这个元素,楼主是 ...

用VS2017调试的时候发现的 而且代码运行过程中确实有这个元素
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-15 21:44:56 | 显示全部楼层
冷回清风暖 发表于 2020-11-15 21:32
用VS2017调试的时候发现的 而且代码运行过程中确实有这个元素

       数组越界,被访问到的就已经不是本数组的元素了,而是属于其他变量内存中的内容。是什么线索引导你去越界访问这个数组元素,有什么特殊的理由?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 13:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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