簡體   English   中英

我將隨機生成的數字創建到數組中的程序不斷崩潰

[英]My program to create randomly generated numbers into an array keeps crashing

所以最近我做了一段代碼,它隨機生成一個數組(或包),但是當我嘗試運行時它崩潰了,我不知道為什么。 我對編碼相當陌生,我不確定邏輯錯誤在哪里。

所以該程序基本上是為了制作一個多維數組,為 PC 隨機生成“訂單”。 我試圖制作從 150-250 個訂單創建的包,但如果這不可能(或太復雜),我可以只制作 250 個。訂單是(orderId(從 1 到有多少訂單), PCId(0-15 的隨機數)、orderQuantity(1-20 的隨機數)、dueDate(0-4 的隨機數)、利潤(尚未配置,暫時忽略))。 在數組中是這個順序

{orderId, PCId, orderQuantity, dueDate, profit}

我想了解為什么它在 IDE 中不顯示任何錯誤,但在運行時崩潰!

#include <iostream>
#include <cstdlib>
#include <ctime>

class BundleGenerator
{
public:
    BundleGenerator();
    void generateBundle();

protected:
    int numberOfOrders;
    int bundleArray[][5];
    int orderId;
    int PCId;
    int quantity;
    int dueDay;
    int profit;
};

int main()
{
    srand(time(NULL));

    BundleGenerator bg;
    bg.generateBundle();
    return 0;
}

BundleGenerator::BundleGenerator()
{
    int randNum;
    randNum = rand()%(250-150 + 1) + 150;
    numberOfOrders = randNum;
}
void BundleGenerator::generateBundle()
{
    orderId = 1;

    for (int i=0; i<numberOfOrders; i++)
    {
        bundleArray[i][0] = orderId;
        orderId++;

        int PCIdRnd = rand()%15;
        PCId = PCIdRnd;
        bundleArray[i][1] = PCId;

        int quantityRnd = rand()%19;
        quantity = quantityRnd;
        bundleArray[i][2] = quantity;

        int dueDayRnd = rand()%4;
        dueDay = dueDayRnd;
        bundleArray[i][3] = dueDay;

        bundleArray[i][4] = 0;
    }
}

任何關於該計划的建議都會很棒! 謝謝 :)

問題將出在“int bundleArray[][5];”上,看來您沒有為數組提供任何內存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM