malloc
假设我在堆中有一些数组由or构造无关紧要new
。我需要最有效的方法来放大它。我的意思是,如果它有足够的空闲空间位于已经分配的数据之后,我可以保持我的数据不受影响。是否可以在 C++ 中维护?
realloc
以这种方式工作吗?
malloc
假设我在堆中有一些数组由or构造无关紧要new
。我需要最有效的方法来放大它。我的意思是,如果它有足够的空闲空间位于已经分配的数据之后,我可以保持我的数据不受影响。是否可以在 C++ 中维护?
realloc
以这种方式工作吗?
是的,realloc
就是你要找的。请注意,它不适用于new
,您必须使用malloc
(或者说,calloc
)。此外,有时扩展内存是不可能的,所以realloc
会尝试为你做,但如果它不能 - 它会求助于分配新内存,将你的内容复制到新位置并释放旧内存。
是的,realloc就是这样工作的,尽管链接说不能保证,但我认为这是针对内存碎片化并且没有足够空间就地扩展内存块的情况。