c - 有没有办法在不定义大小的情况下初始化数组

标签 c

有没有一种方法可以在不定义大小的情况下初始化数组。 数组的大小会自行增加,因为当循环运行时它会重新分配数组。

最佳答案

没有开箱即用的东西。您将必须创建自己的类似数组的数据结构来执行此操作。如果您细心的话,应该不会很难实现。

您正在寻找的大致是一种数据结构,该数据结构在创建时分配(例如,使用 malloc)预定义的大小,并开始使用其中的连续空间作为数组。然后,随着更多项的添加,它会重新分配(例如,使用 realloc)该空间。

当然,您将无法使用您习惯于处理简单数组的索引器语法。相反,您的数据结构将必须提供它自己的一对 set/get 函数来处理上述内容,在幕后。因此,set 函数将检查其参数中指定的索引,如果该索引大于数组的当前大小,则执行重新分配。然后,无论如何,将提供的值设置为指定的索引。

关于c - 有没有办法在不定义大小的情况下初始化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16260377/

相关文章:

c - 如何优雅地关闭我的服务器?

c++ - 使用 gcc 在 Linux 上运行线程构建 block (Intel TBB)

c - 如何用C语言打印2张表格?

c - 如何在 C 中的二维双数组中读取 .pgm 图像文件

c - 尝试在 C 中使图像在像素级别上变大时获取访问冲突写入位置 0xCDCDCDCD

c - Arduino定时器库和剩余时间

c - 引发后续警报()

c - 我怎样才能打破一个功能

command-line - 无法从 The C Programming Language 编译示例程序

c - 将文本永久保存到文件并从中读取