如何将数组大小传递给C ++中的函数

时间:2013-09-30 02:37:50

标签: c++ arrays

只是我想问一下如何传递数组大小来抛出函数来设置我的游戏记录的大小我唯一的原因是我不使用向量因为我将这个记录基于PMI lib并且它不支持C ++ Constrainers因为它用C语言编写,这就是我使用数组的原因

void playGame(int max_streak_length)
{
    int tracker =0 ;
    const int arrsize  = max_streak_length;

    int gameRecored[arrsize]={0};


    while( tracker < 4)
    {

        Craps games;

        if( games.Play()== true)
        {
            tracker++;
        }
        else
            if(tracker >0)
        {
            gameRecored[tracker-1]++;
            tracker = 0;
        }

    }
    gameRecored[tracker-1]++;
    int v= 0;


}

2 个答案:

答案 0 :(得分:2)

C ++不支持C.99中提供的可变长度数组功能。但是,C ++提供的std::vector<>易于使用,有些人可能会说更安全。

    std::vector<int> gameRecored(arrsize, 0);

您可以像在当前代码中一样使用gameRecored作为数组,并且在函数调用返回时它将自行清理。

答案 1 :(得分:0)

你不能定义一个大小为VARIABLE的数组。如果你想要一个动态大小,你应该使用operator new,就像这样:

int mysize = 10;
int* array = new int[mysize];

变量mysize可以是动态数字,例如函数参数。 如果您的阵列永远不会改变其大小,您可以使用:

int array[10];

请记住,如果您使用operator new,则必须使用operator delete在不需要时删除数组。

Hop可以帮助你。