有没有一种方法可以在不定义大小的情况下初始化数组。 数组的大小会自行增加,因为当循环运行时它会重新分配数组。
最佳答案
没有开箱即用的东西。您将必须创建自己的类似数组的数据结构来执行此操作。如果您细心的话,应该不会很难实现。
您正在寻找的大致是一种数据结构,该数据结构在创建时分配(例如,使用 malloc
)预定义的大小,并开始使用其中的连续空间作为数组。然后,随着更多项的添加,它会重新分配(例如,使用 realloc
)该空间。
当然,您将无法使用您习惯于处理简单数组的索引器语法。相反,您的数据结构将必须提供它自己的一对 set
/get
函数来处理上述内容,在幕后。因此,set
函数将检查其参数中指定的索引,如果该索引大于数组的当前大小,则执行重新分配。然后,无论如何,将提供的值设置为指定的索引。
关于c - 有没有办法在不定义大小的情况下初始化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16260377/