鱼C论坛

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

二维数组定义问题

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

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

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

x
数组g中莫名其妙多了g[5][3] = 1的元素。为什么呢
  1. int main(void) {
  2.         int g[][7] = {
  3.                 {6,7,4,8,1,2,5},
  4.                 {2,2,1,1,1,1,4},
  5.                 {2,1,1,1,1,6,9},
  6.                 {2,1,1,1,1,1,3},
  7.                 {5,6,7,1,1,2,3},
  8.         };
  9.         Point start;
  10.         start.x = 2;
  11.         start.y = 2;
  12.         int area = fun(g, start,g[start.x][start.y],5,7);
  13.         for (int i = 0; i < 5; ++i) {
  14.                 for (int j = 0; j < 7; ++j)
  15.                         printf("%2d", g[i][j]);
  16.                 putchar('\n');
  17.         }
  18.         printf("%d\n", area);
  19. }
复制代码

]TDB4T5)E`GM@L2YM1R4%KX.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-11-10 16:25:21 | 显示全部楼层
这样试试?
  1. int main(void) {
  2.         int g[][7] = {
  3.                 {6,7,4,8,1,2,5},
  4.                 {2,2,1,1,1,1,4},
  5.                 {2,1,1,1,1,6,9},
  6.                 {2,1,1,1,1,1,3},
  7.                 {5,6,7,1,1,2,3},
  8.         };
  9.         Point start;
  10.         start.x = 2;
  11.         start.y = 2;
  12.         int area = fun(g, start,g[start.x][start.y],4,6);
  13.         for (int i = 0; i < 5; ++i) {
  14.                 for (int j = 0; j < 7; ++j)
  15.                         printf("%2d", g[i][j]);
  16.                 putchar('\n');
  17.         }
  18.         printf("%d\n", area);
  19. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-10 16:26:53 | 显示全部楼层
      对于
  1.         int g[][7] = {
  2.                 {6,7,4,8,1,2,5},
  3.                 {2,2,1,1,1,1,4},
  4.                 {2,1,1,1,1,6,9},
  5.                 {2,1,1,1,1,1,3},
  6.                 {5,6,7,1,1,2,3},
  7.         };
复制代码

    的定义而言,g[5][3] 已经显然是下标越界了,也就是说,根本无法访问这个元素,楼主是如何发现这个问题的?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

用VS2017调试的时候发现的 而且代码运行过程中确实有这个元素
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-9 11:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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