gpt4 book ai didi

c++ - Noobish 阵列问题 : Run-Time Check Failure #2 - Stack around the variable 'arr' was corrupted

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:49:57 24 4
gpt4 key购买 nike

我会很诚实/坦诚地说 - 我是 C++ 的菜鸟,一般的计算机编程,此外,也是这个网站的菜鸟。我只是通过说我确实看过其他可能与我自己的问题相关的问题来作为我的问题的序言,但感觉它们不在我的范围之内。话虽如此,这是我的问题:

我收到此错误消息:

“运行时检查失败 #2 - 变量‘arr’周围的堆栈已损坏。”

这是我的代码。只是一些阵法练习的基础小东西。函数 multiTable 输出一个乘法表:


#include <iostream>
#include <iomanip>

using namespace std;

void multiTable();

int main()
{
multiTable();
return 0;
}

//Prints a 9 by 9 multiplication table;
void multiTable()
{
const int row = 9, col = 9;
int arr[row][col];

for(int i = 1; i <= row; i++)
{
for(int j = 1; j <= col; j++)
{
arr[i][j] = j * i;
cout << setw(3);
cout << arr[i][j];
}
cout << endl;
}
}

我还想提一下,如果我只是将函数主体中包含的所有代码都包含在 main 中,而不是函数调用,我不会得到运行时错误。为什么当它包含在一个函数中时,我得到运行时错误,但当它只是在 main 中时,我没有得到错误?当然,为了使函数调用不产生错误,我必须更改什么?

最佳答案

这些是你的问题:for(int i = 1; i <= row; i++)for(int j = 1; j <= col; j++)数组计数从 0 开始.所以你的 for 循环应该是这样的(从 0 开始并省略 =<= 部分):

for(int i = 0; i < row; i++)for(int j = 0; j < col; j++)

关于c++ - Noobish 阵列问题 : Run-Time Check Failure #2 - Stack around the variable 'arr' was corrupted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17510706/

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