运行时检查失败#2 - 变量周围的堆栈'myArray'已损坏.- 似乎无法弄清楚如何删除此错误

Run-Time Check Failure #2 - Stack around the variable 'myArray' was corrupted.- Cant seem to figure out how to remove this error

本文关键字:弄清楚 何删除 错误 删除 已损坏 变量 失败 检查 周围 运行时 myArray      更新时间:2023-10-16

代码运行,但常量错误 - 运行时检查失败 #2 - 变量"myArray"周围的堆栈已损坏。似乎找不到任何可行的解决方案。非常感谢所有的帮助。

`# include <iostream>
 # include <cstdlib>
 using namespace std;
 int main()
{
    int swapHolder = -1;
    int myArray[] = {44, 9, 237, 1, 5, 44, 534, 17, 21, 819};
    for (int index = 0; index < 10; index++)
 {
    if (myArray[index] > myArray[index + 1])
    {
        swapHolder = myArray[index + 1];
        myArray[index + 1] = myArray[index];
        myArray[index] = swapHolder;
      }
}

for (int index = 0; index < 10; index++)
{
    cout << myArray[index] << ", ";
    cout << endl;
}
}

在第一次 for 循环的最后一次运行中,当索引的值为 9 时,myArray[index + 1]变得myArray[10]但该数组的索引最大值为 9。因此,在这种情况下,您正在访问编译器未分配给程序的内存块。这就是您收到运行时错误的原因。请将您的第一个 for 循环替换为此循环

for(int index=0; index<9; index++)