糖逗 发表于 2019-11-22 17:22:24

C语言动态的加入数据

如果现在并不知道一个数组中有多少个数,只能边循环边向数组中添加元素(只有在循环结束了才知道有多少个数),这种需求只能用链表存储数据吗?
就例如这道题,如果我不是在这之前打印,而是在后面问是否打印,如果用户选是就打印.因此需要在循环的过程存数据但又不知道多长,是不是只能用链表才能存储?

Croper 发表于 2019-11-22 18:01:45

可以,但是不推荐使用链表,效率低,运行慢,也不见得节约内存。
直接申请一个足够大的数组就行,比如a;

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

另外,现在的电脑内存都是按g计算的。。真的不差你多申请的那几十字节的内存。反正大部分情况下,无脑用数组就对了
页: [1]
查看完整版本: C语言动态的加入数据