假设,出于问题的目的,我们有一个内存池,最初分配了n个块。但是,当达到容量时,池想要增长并变成原来的两倍(2n)。
现在这个调整大小操作可以realloc
在 C 中完成,但是函数本身可能会返回一个指向不同内存的指针(其中复制了旧数据)。
这意味着内存池分配器返回的指针可能不再有效(因为内存可能已被移动)。
什么是克服这个问题的好方法?或者甚至有可能吗?
假设,出于问题的目的,我们有一个内存池,最初分配了n个块。但是,当达到容量时,池想要增长并变成原来的两倍(2n)。
现在这个调整大小操作可以realloc
在 C 中完成,但是函数本身可能会返回一个指向不同内存的指针(其中复制了旧数据)。
这意味着内存池分配器返回的指针可能不再有效(因为内存可能已被移动)。
什么是克服这个问题的好方法?或者甚至有可能吗?