我不知道该主题是否正确突出了我的问题。但是,这是我的问题。 我有一个固定大小的数组。我使用控制台将数据提供给数组。当数组已满时,我需要创建一个相同大小的新数组并开始填充该数组。我不想扩展现有的数组或声明更大的数组。另外我想删除那些数组,如果它们变空。这与使用C ++建模硬件内存有关。这就是为什么我想使用固定大小的数组来表示内存块。
我必须在这里使用手动内存管理。我试图在硬件系统中建模内存管理系统。我想做的是这样的事情。
DataType array[1024];
int i;
while(True)
temp = read_console_input();
array[i] = temp;
memory_manager();
endwhile
function memory_manager()
if array.is_full()
DataType array1[1024] = new Datatype[];
set_active_array(array1);
endif
endfunction
由于
答案 0 :(得分:0)
只需对每个块使用std::vector
,并将其作为块的容器。
你在谈论“当数组已满时”,这意味着你要跟踪动态大小。 std::vector
为你做到了。它还为您管理记忆。
std::vector
没有变满 - 它会尝试重新分配其缓冲区,例如push_back
会超过当前容量 - 但您可以在顶部轻松添加此限制。我将向量包装在只提供相关公共操作的类中