【发布时间】:2023-04-08 19:07:01
【问题描述】:
我正在尝试创建一个随机数生成器,它会越来越多地输出 +1 随机生成的数字。我的问题是,在最后一个循环之后,MVS 抛出异常,
“RandomGame.exe 已触发断点。发生。”
我知道这与内存位置被破坏有关,这是有道理的,因为我使用的是动态大小的数组,但我不确定如何继续前进。
int size = 1;
int* array = new int[size];
for (int x = 0; x < 5; x++)
{
for (int i = 0; i < size; i++)
{
array[i] = (rand() % 100) + 1;
cout << array[i] << endl;
}
size++;
}
return 0;
我希望程序给我 15 个随机生成的数字,然后返回 0。当它输出数字时,它完成后抛出异常。
【问题讨论】:
-
Visual Studio 这样做的一个很酷的事情是,您可以接受它提供的调试、检查堆栈以及查看程序是如何进入致命状态的。很有帮助。
-
您希望数组的大小是多少? 1 或大于 1 的东西。您分配一个大小为 1 的数组,然后尝试访问位置 0-4。你不能那样做。要么弄清楚你的阵列需要多大,要么使用
std::vector