Stack around the variable 'num' was corrupted.

cyp_0413 2018-01-25 05:33:52
#include<iostream>
#define LEN 100
using namespace std;
int main()
{
int num[LEN], a = 3, q = 2;
int i = 0, j, k, t = a;
do {
num[i++] = t;
t *= q;
} while (num[i] < 720);
int s, flag = 0;
for (int i = 0;i < LEN;i++)
{
s = 0;
j = k = i;
while (s < 720 && k < LEN)
s += num[k++];
if (s == 720)
{
k--;
flag = 1;
break;
}
}
if (flag = 1)
{
cout << "第" << j << "项~第" << k << "项的和是720" << endl;
while (j <= k)
cout << num[j++] << '\t';
cout << endl;
}
else cout << "没有满足条件的项" << endl;
system("pause");
}
在最后会显示这个:
这是什么意思啊?
...全文
292 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyp_0413 2018-01-25
  • 打赏
  • 举报
回复

噢我知道了,应该把圈里的"i"改成"i-1",因为上面循环里的“i++”执行后“i”为小于720的整数元素的后一位,这一位元素无值,可能导致堆栈破坏。
cyp_0413 2018-01-25
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止
应该不算崩溃吧,调试结果能出来,但是把调试结果的窗口关闭后才出现这个。
赵4老师 2018-01-25
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止

65,207

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧