二维数组定义问题
数组g中莫名其妙多了g = 1的元素。为什么呢{:5_104:}int main(void) {
int g[] = {
{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,5,7);
for (int i = 0; i < 5; ++i) {
for (int j = 0; j < 7; ++j)
printf("%2d", g);
putchar('\n');
}
printf("%d\n", area);
}
这样试试?
int main(void) {
int g[] = {
{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,4,6);
for (int i = 0; i < 5; ++i) {
for (int j = 0; j < 7; ++j)
printf("%2d", g);
putchar('\n');
}
printf("%d\n", area);
} 对于
int g[] = {
{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 已经显然是下标越界了,也就是说,根本无法访问这个元素,楼主是如何发现这个问题的? jackz007 发表于 2020-11-10 16:26
对于
的定义而言,g 已经显然是下标越界了,也就是说,根本无法访问这个元素,楼主是 ...
用VS2017调试的时候发现的 而且代码运行过程中确实有这个元素 冷回清风暖 发表于 2020-11-15 21:32
用VS2017调试的时候发现的 而且代码运行过程中确实有这个元素
数组越界,被访问到的就已经不是本数组的元素了,而是属于其他变量内存中的内容。是什么线索引导你去越界访问这个数组元素,有什么特殊的理由?
页:
[1]