【问题标题】:Increasing Size Random Number Generator Triggering Breakpoint增加大小的随机数生成器触发断点
【发布时间】: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

标签: c++ arrays random


【解决方案1】:

当您声明new int[size] 时,array 的大小固定为 1。之后你用size++ 增加了size 变量,但数组的大小没有增加。如果您想要灵活的数组大小,建议使用std::vector

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多