关于C语言不确定长度数组的实现

2020-11-19 22:07发布

问题:当要定义一个数组,而这个数组长度不确定,要在不浪费内存的情况下,请问如何定义这个数组?

具体需求:现在,需要输入一组数据(假设都为整型),但其数量不确定。需要在不浪费内存的情况下,将所输入数据创建为一个数组方便进行以后的操作。

例子:>>1 2 3 4 5

数据输入完后,则存在一个数组为arry[5].

附:本人小白一枚,还请不吝赐教。感谢!

标签: c
3条回答
▲ chillily
2楼-- · 2020-11-19 22:32

没有其它要求了吗?

感觉先判断输入的是几个数字,然后在创建对应长度的数组就行了呀。我觉得是不是你漏掉了什么信息??

是不是要实现这样的效果:可以多次输入数字,数组要跟着变大?

如果是这样的,我觉得可以参考很多类库的做法:先实例化一个长度为n的数组,当其中的元素个数快达到n时,创建一个新数组,长度是n+m,然后把旧数组的数据复制到新数组。

查看更多
Summer. ? 凉城
3楼-- · 2020-11-19 22:35

这。。这不就是List吗。。
内部维护一个数组

一个物理长度字段
一个数组长度字段

当数组长度>物理长度,物理长度*2,

内存利用率始终>50%

查看更多
混吃等死
4楼-- · 2020-11-19 22:46

每次根据输入的数据个数,来定义数组的长度即可。

查看更多
登录 后发表回答