我正在尝试编写一个可以根据用户输入创建大小数组的程序。
如何根据用户输入创建大小数组?
这就是我到目前为止所做的:
true
答案 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