我正在寻找一种在运行时为现有结构(最初已经分配了内存)分配额外内存(在 C 中)的方法。我有一种感觉,我可能可以使用memmove或类似的东西,但这仍然只是一个复制操作,并且不会增加运行时结构可用的内存量。此外,我不想每次需要复制整个结构,这将在程序期间进行数百次(结构已经很大)。任何人都可以帮忙吗?
更新:感谢大家的回复。为了提供更多详细信息,我正在尝试运行一个 MPI 并行代码,该代码最初创建该结构的许多实例(称为“S”)。该结构的每个实例都包含一个数组“T”,它记录了在代码运行时发生的特定事件的时间。这些事件在运行时发生,并且每个 S 实例的事件数量不同。例如,S[0] 可能看到 100 个事件(因此需要一个长度为 100 个元素的数组),但 S[1] 可能只看到 1事件(和 S[2] 30 个事件等)因此,在开始时为 S 的每个实例(有数百万个)分配大量内存是非常浪费的,因为有些可能会填满数组,而另一些则不会甚至接近。
我将在这里尝试一些想法并发布我的进展。非常感谢!