变量周围的调试错误堆栈已损坏

时间:2014-10-27 14:34:39

标签: c++

我是编程方面的业余爱好者,并且遇到了一个错误,上面写着“运行时检查失败#2 - 变量'存储'周围的堆栈已损坏。”我之前查了过这个错误,但是我没有看到任何适用于我想要做的修复。似乎这种错误可能由于各种原因而发生。

我的代码完全符合我的要求,但我不明白为什么会出现此错误,如果有人能向我解释,我会非常感激。谢谢!

#include <iostream>
using namespace std;

int main()
{
   int store[4] = {};

   for (int i = 0; i != 5; i++)
   {

      cout << "Enter the sales of store " << (i + 1) << ": ";
      cin >> store[i];
   }

   cout << "\nSALES BAR GRAPH\n(Each * represents $100)\n";

   for (int i = 0; i != 5; i++)
   {
      int a = (store[i] / 100);
      cout << "\nStore " << (i + 1) << ": ";
         for (int i = 0; i < a; i++)
         {
            cout << "*";
         }
   }

   cout << "\n";

   system("pause");
}

1 个答案:

答案 0 :(得分:1)

您的for循环不正确:

for (int i = 0; i != 5; i++)

如果您声明store[4],则会引用int store [4],这超出范围。如果要将商店大小保持为4,则应将循环更改为:

for (int i = 0; i < 4; i++)