gpt4 book ai didi

c++ - 运行时检查失败 #2 - 变量 'numberchoices' 周围的堆栈已损坏

转载 作者:行者123 更新时间:2023-11-28 04:44:34 26 4
gpt4 key购买 nike

我每次完成调试程序时都会遇到此终端错误。

我在做什么:

[这个程序是一个简单的彩票号码比较用户输入的号码与非重复的随机彩票号码。例如使用如果它得到 4 的权利 6]

但事实证明该程序无法正常工作,或者至少是稳定的。

这是我的代码:

#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
#include <time.h>
#include <ctime>
#include <algorithm>
using namespace std;

int main()

{
cout << "[La Loteria Electronica]\n";
cout << "Escoge 6 n" << char(163) << "meros del (1 al 49): \n";
int numberchoices[] = { 0 };

for (int w = 1; w < 7; w++)
{
cout << "N" << char(163) << "mero #" << w << ": ";
cin >> numberchoices[w];
} // user numbers



//lottery numbers
int i, j, k, nums[51];
srand((int)time(0));
for (i = 1; i < 50; i++) nums[i] = i;
for (i = 1; i < 50; i++)
{
j = (rand() % 49) + 1;
k = nums[i]; nums[i] = nums[j]; nums[j] = k;
}
cout << "The lottery numbers are: ";
for (i = 1; i < 7; i++) cout << nums[i] << " ";

if (numberchoices[i] = nums[i])
{
cout << "gud\n";
}

if (numberchoices == nums)
{
cout << "gud 2";
}
/**/




cout << "\n\n";
system("pause");

最佳答案

请问?

int numberchoices[] = { 0 };

for (int w = 1; w < 7; w++)
{
cout << "N" << char(163) << "mero #" << w << ": ";
cin >> numberchoices[w];
} // user numbers

您要声明一个大小为 1 的数组,然后使用它直到位置 6?

I am having this terminal error every time I finish the debug program.

令我惊讶的是,您每次开始调试时都没有出现终端错误。

numberchoises在1到6位置的访问是UB(Undefined Behavior)。即:一切皆有可能。

解决方法:尝试

int numberchoices[7] = { }; // initialize all elements to zero!

还有一点

if (numberchoices == nums)

不确定您是否得到了您期望的结果。

你要比较numberchoices(一个int[1],建议int[7])对应的整型指针和那个对应于 nums (a int[51]) ?

关于c++ - 运行时检查失败 #2 - 变量 'numberchoices' 周围的堆栈已损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49525455/

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