如何获取Array的大小的用户输入

时间:2018-02-04 22:59:53

标签: c

我正在尝试编写一个可以根据用户输入创建大小数组的程序。

如何根据用户输入创建大小数组?
这就是我到目前为止所做的:

true

2 个答案:

答案 0 :(得分:1)

恭喜您开始学习,您是否正在学习某种教程?接下来你应该学习的是dynamic memory allocation,而不是堆栈上的静态分配(编译时已知的大小)。

从维基百科页面的例子:

  

在C:

中创建一个具有自动范围的十个整数数组很简单
int array[10];
     

但是,数组的大小在编译时是固定的。如果希望动态分配类似的数组,可以使用以下代码:

int *array = malloc(10 * sizeof(int));

显然,对于您的情况,请将int替换为char,将10替换为size

总是 (这是关于动态分配的棘手问题)请记住free()任何记忆malloc编辑一次&#39} ;完成它!

答案 1 :(得分:0)

无法使用上述语法创建动态调整大小的数组。

在纯c中,最常见的方法是将数组定义为指针,然后使用malloc获得动态大小的存储。

简约示例:

#include <stdlib.h>
int dynamic_size = 10; //Set dynamic_size to desired value
int *array = malloc(dynamic_size * sizeof(int));
//Use like normal array, but be carful with the bounds
array[5] = 10;
//After use, free it
free(array);

另请参阅:https://en.wikipedia.org/wiki/C_dynamic_memory_allocation