gpt4 book ai didi

c++ - 二维数组码错误

转载 作者:太空宇宙 更新时间:2023-11-04 15:41:07 25 4
gpt4 key购买 nike

我写了一个乘法表是这样的:

#include <iostream>
#include <conio.h>
using namespace std;
int main(){
int table[9][9], i, j;
for (i = 0; i < 10; ++i){
for (j = 0; j < 10; ++j)
{
table[i][j] = (i + 1) * (j + 1);
cout << table[i][j] << "\t";
}
cout << endl;
}
_getch();
return 0;
}

当我运行它时,它会给出正确的答案,但是当我按下一个键时,它会抛出这个错误:

 run time check faliure #2-stack around the variable table was corrupted

但是当我将代码更改为这样时它不会抛出该错误:

......
int main(){
**int table[10][10]**, i, j;
for (i = 0; i < 10; ++i){
......

如果他们都给出相同的答案,那有什么区别??

最佳答案

你正在溢出你的数组,边界中的最大索引是 8(因为索引是从零开始的,你定义了 9 个单元格作为你的维度大小,所以 8 将是每个维度中的最后一个单元格)并且你的 for 循环可以到达直到9个(含9个)会造成溢出。

关于c++ - 二维数组码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22835088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com