【问题标题】:Getting the size of an array from argv[1] and filling it with random numbers从 argv[1] 获取数组的大小并用随机数填充
【发布时间】:2014-03-15 10:53:32
【问题描述】:

我需要创建一个 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 ===|

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

【问题讨论】:

    标签: c++ arrays loops arguments


    【解决方案1】:
    int array[i] = rand() % 100 ;
    

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

    array[i] = rand() % 100 ;
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-23
      • 2016-02-22
      • 1970-01-01
      • 2017-06-04
      • 2013-09-16
      • 1970-01-01
      相关资源
      最近更新 更多