c - realloc() 的性能影响

标签 c algorithm programming-languages

我有一个记录列表,一开始我不知道记录的数量。我需要将它们读入数组。 因此,是否建议一条一条地读取所有记录并一条一条地重新分配并在元素出现时继续增加数组大小,或者我应该花一次通过来识别记录数并只执行一次 malloc 吗?哪一个计算成本较低?

最佳答案

realloc 并不是真的很昂贵。但是为每个元素调用 realloc 就有点多了。我建议你这样做:

  • 从尺寸开始
  • 添加元素时,检查是否有足够的空间
  • 当你没有足够的空间时,将当前数量加倍

正确猜测足够的初始大小也有帮助。因此,如果您输入的 60% 少于 100 条记录,请从那开始。

关于c - realloc() 的性能影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6727136/

相关文章:

C 代码未显示正确的内容

c - Windows API : Programmatically moving the Windows IME Input box possible?

c++ - 使用 std::tuple 从 map 中输出

sql-server - 复杂 SQL 查询建议 : Reservation allotment logic

scripting - 为什么脚本语言使用动态作用域规则?

c - 我怎样才能使这个会合散列代码工作?

c - dpdk mempool 分配的方式超出了必要

c - "more threads"是否意味着更快的速度?

compiler-construction - 用托管语言编写内存管理器?

objective-c - ios)对象-c。如何自定义导航栏上的按钮