鱼C论坛

 找回密码
 立即注册
查看: 918|回复: 1

[已解决]C语言动态的加入数据

[复制链接]
发表于 2019-11-22 17:22:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如果现在并不知道一个数组中有多少个数,只能边循环边向数组中添加元素(只有在循环结束了才知道有多少个数),这种需求只能用链表存储数据吗?
就例如这道题,如果我不是在这之前打印,而是在后面问是否打印,如果用户选是就打印.因此需要在循环的过程存数据但又不知道多长,是不是只能用链表才能存储?
最佳答案
2019-11-22 18:01:45
可以,但是不推荐使用链表,效率低,运行慢,也不见得节约内存。
直接申请一个足够大的数组就行,比如a[100];

一般来说,数组在绝大部分的情况下都优于链表。数组的存储空间是连续的,cpu又有多级高速缓存,很容易对数组的访问进行优化,而链表只能傻傻地一个一个地访问内存。这速度相差不言而喻。

另外,现在的电脑内存都是按g计算的。。真的不差你多申请的那几十字节的内存。反正大部分情况下,无脑用数组就对了
捕获.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-22 18:01:45 | 显示全部楼层    本楼为最佳答案   
可以,但是不推荐使用链表,效率低,运行慢,也不见得节约内存。
直接申请一个足够大的数组就行,比如a[100];

一般来说,数组在绝大部分的情况下都优于链表。数组的存储空间是连续的,cpu又有多级高速缓存,很容易对数组的访问进行优化,而链表只能傻傻地一个一个地访问内存。这速度相差不言而喻。

另外,现在的电脑内存都是按g计算的。。真的不差你多申请的那几十字节的内存。反正大部分情况下,无脑用数组就对了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 16:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表