从数组中删除未使用的内存,以免输出随机数

Removing unused memory from an array so it doesnt output random numbers

本文关键字:输出 随机数 内存 数组 删除 未使用      更新时间:2023-10-16
void dealCard(int tds, int totaldeck[]) //take total deck divide it by two deal it to two player
{
    int ku=0; //ku is the increasing card number so for 1 you give it to p1 then 2 u give to p2
    int player1deck[tds/2];
    int player2deck[tds/2];
    int num =0;
    int num1=0;
    for (ku; ku < tds; ku++)
    {
        if (ku % 2 == 1) // every other card is given to playerdeck1
        {
            player1deck[num] = totaldeck[ku]; //totaldeck is the already shuffled complete deck
            num++;
            //cout << tds << endl;
        }
        else
        {
            player2deck[num1] = totaldeck[ku];
            num1++;
        }
    }
    cout << endl;
    for (int kookoo = 0; kookoo < ku; kookoo++)
    {
    cout << player1deck[kookoo] << endl;
    }
}  

我正在创建一个功能,该功能将一半的已洗牌卡牌交给Player1和Player2。

我有一个问题是,一旦所有26个参数都填写在player1deck [num]中。输出变为随机数,例如52、10201328,-208476711、0、1等。我认为计算机只是试图将内存分配给未填充点,因为[ku]一直到TDS(用户的数量,用户是用户是数量)玩 * 52)和[num]只是其中的一半。无论如何,是否可以摆脱这种额外的记忆,以便我可以摆脱这些随机数字?非常感谢您的任何帮助/建议

player1deck仅包含26个元素,最后一个循环试图访问第一个元素。这是不确定的行为。

您需要这样更改循环条件:

for (int kookoo = 0; kookoo < tds / 2; kookoo++)