【发布时间】:2014-10-27 05:33:19
【问题描述】:
让我用一个例子来解释一下:
假设我们想要调整之前动态分配的对象数组的大小......
所以我们有这样的解决方案:
创建一个具有新大小的新数组并尝试将旧数组复制到该数组并尝试释放旧数组...
但我想要的是在数组之后检查内存是否有可用空间,如果它存在为我的数组分配内存,而不是防止内存开销!另一方面,如果我们的新数组没有足够的内存和旧数组同时,我们无法调整它的大小!
有没有办法从特定的内存位置分配内存?
【问题讨论】:
-
你的例子会更好一些代码,甚至伪代码。就目前而言,听起来您只是想使用
std::vector。 -
不,我想自己做,而不是像vector这样的C++标准类
-
然后展示你希望这样的东西如何在代码中工作,正如我所提到的,仅用文本很难理解你在问什么。
-
ok 看看这个: bool resize(stuff *input){ if(Is_memory_free(from:input.last(), to:input.last() + sizeof(one block of input))) void *newmemory = allocate_memory(from:input.last(), to:input.last() + sizeof(一个输入块)) attach_to_array(old_memory:input, new__memory:newmemory) else return false return true }
-
查看 realloc 和下面提到的新位置