从argv [1]获取数组的大小并用随机数填充它

时间:2014-02-16 04:03:43

标签: c++ arrays loops arguments

我需要创建一个SIZE整数数组,用随机数填充数组,然后显示未排序和排序的数组内容。这是我到目前为止所得到的:

#include <iostream>
#include <stdio.h>
#include <stdlib.h>

using namespace std;

int rand(void) ;

int printArray(int array[], int size)
{
    return 0 ;
}

int sortArray(int array[], int size)
{
    return 0 ;
}

int main(int argc, char *argv[])
{
    int size = atoi(argv[1]) ;
    int* array = new int [size] ;

    for (int i = 0 ; i < size; i++)
    {
        int array[i] = rand() % 100 ;
    }

    //printArray(argv[1], size) ;
    //sortArray(argv[1], size) ;

    return 0;
}

我得到的错误:

||In function 'int main(int, char**)':|
|26|error: variable-sized object 'array' may not be initialized|
|26|warning: unused variable 'array'|
|22|warning: unused variable 'array'|
||=== Build finished: 1 errors, 2 warnings ===|

我认为这是因为必须在运行时填充数组?

1 个答案:

答案 0 :(得分:1)

int array[i] = rand() % 100 ;

从此行中删除int。编译器认为你正在(重新)声明一个大小为i的数组,它恰好是变量的。它应该是

array[i] = rand() % 100 ;

由于您没有对循环中声明的数组执行任何操作,因此会收到unused variable警告。