gpt4 book ai didi

c - 开头的随机数组大小?

转载 作者:行者123 更新时间:2023-11-30 18:26:35 25 4
gpt4 key购买 nike

我想在每次程序第一次执行时创建一个随机大小的数组,但编译器对我大喊

"Error  2   error C2466: cannot allocate an array of constant size 0"

有什么方法可以让我在开始时通过 SIZE = rand() % 100 随机选择 SIZE ,然后使用 int myarray 初始化数组[尺寸]={0} ???或者我应该每次在开头都用一个确切的数字来初始化它?

int main(void) {
int i;
int SIZE=rand()%100;
int array2[SIZE]={0};

for(i=0;i<SIZE;i++) //fill the array with random numbers
array2[i]=rand()%100;
...
}

最佳答案

您表示您正在使用 Microsoft 的 Visual Studio。 MS Visual Studio c99 兼容(他们最多选择),缺少的功能之一是 VLAs .

使用 MS VS 可以做的最好的事情就是使用 malloc() 动态地执行此操作。 :

int main(int argc, char *argv[])
{
int i;
int SIZE=rand()%100;
int *array2=malloc(SIZE * sizeof(int)); // allocate space for SIZE ints

for(i=0;i<SIZE;i++) //fill the array with random numbers
array2[i]=rand()%100;
free(array2); // free that memory when you're done.
return 0;
}

如果您想切换编译器,还有其他选择。

关于c - 开头的随机数组大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16344674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com