如何更高效地创建算法?给定一个二维数组,假设大小为 a b。这些相同的 a 和 b 永远不会再改变。我创建了一个三维数组,它的第一个索引只有0。对这个数组进行一些计算,并在它们的基础上创建一个新数组a b。此时,我需要添加另一个大小为 a b 的数组,并且三维数组的第一个索引可以是 0 和 1,以此类推,直到找到“正确”的大小为 a 的数组湾。您需要保存以前的状态,因为您经常需要返回它们。我一开始通过malloc分配内存,然后通过realloc改变大小。我知道 realloc 实际上会在内存中寻找合适大小的位置,然后将先前的数组复制到新位置,并清除旧内存。在我的例子中,数组会经常增长,这意味着你需要不断地花时间将数据从一个内存区域传输到另一个内存区域。有没有其他方法可以在不移动数据的情况下完成所有这些操作?不可能预先猜测/计算所需的内存量,甚至近似地,最大的第一个索引很容易只有 0 和 100500,这完全取决于输入到第一个数组 a * b 大小的数据。
您不能将代码放在评论中...
如果二维尺寸是固定的,这就是我的建议:
我决定通过以下方式创建一个数组 1,w,v: