ove*_*123 0 c arrays variable-length-array
据我所知,(我是c的初学者)你可以定义数组的大小,前提是用户知道用户将提供多少输入.但是,如何根据输入数量定义数组的大小?
例如,如果我必须提供10个数字作为输入,那么我如何以这样的方式声明一个数组,根据我的输入计数将其大小指定为10?(我不知道是否有可能,但我想知道)
从C99开始,您可以使用可变长度数组.您可以随意声明它们,使用size_t变量作为其大小.
size_t n;
printf("How many numbers would you like to enter?\n");
scanf("%zu", &n);
int array[n];
for (size_t i = 0 ; i != n ; i++) {
printf("Enter number %zu: ", i+1);
scanf("%d", &array[i]);
}
printf("You entered: ");
for (size_t i = 0 ; i != n ; i++) {
printf("%d ", array[i]);
}
printf("\n");
Run Code Online (Sandbox Code Playgroud)
注意:此方法适用于相对较小的数组.如果您预计使用较大的阵列,请不要使用此方法,因为它可能导致未定义的行为(溢出自动存储区域).相反,使用malloc和free.