gpt4 book ai didi

c - 动态数组分配困惑

转载 作者:行者123 更新时间:2023-11-30 19:15:34 25 4
gpt4 key购买 nike

我要从用户那里读取几个值并将它们存储在一个数组中。然后我需要创建一个足够大的数组来存储所有这些值。使用我编写的一些函数,我对数组进行排序/lsearch/bsearch 以获得给定值。

我已经编写了程序和所有内容,但用于静态数组实现。我对在哪里实际使用动态数组感到有点困惑。

当用户开始输入值时使用它是有意义的,因为我无法假设他输入了多少值,因此数组需要足够大才能容纳它。当我创建一个足够大的数组来容纳所有值(充当第一个数组的副本)时,使用它也是有意义的(某种程度上)。

我不要求任何代码,一切都已完成,但采用静态方法。我只是想想象一下哪里需要使用 darray。我的想法是:

  1. 当用户首次输入值时
  2. 当我将 arr1 复制到新的 arr2 中时,该新 arr2 需要足够大才能容纳 arr1 的所有值。

我在这一点上是对还是错?

最佳答案

首先使用 malloccalloc 分配某个已知起始大小的数组,并跟踪变量中的当前容量。

当您读取值时,如果数组不够大,则使用 realloc 将数组的大小加倍。

关于c - 动态数组分配困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32338543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com