如何在C ++中动态声明和删除数组

时间:2013-12-17 04:29:18

标签: c++ arrays dynamic

我不知道该主题是否正确突出了我的问题。但是,这是我的问题。 我有一个固定大小的数组。我使用控制台将数据提供给数组。当数组已满时,我需要创建一个相同大小的新数组并开始填充该数组。我不想扩展现有的数组或声明更大的数组。另外我想删除那些数组,如果它们变空。这与使用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

由于

1 个答案:

答案 0 :(得分:0)

只需对每个块使用std::vector,并将其作为块的容器。

你在谈论“当数组已满时”,这意味着你要跟踪动态大小。 std::vector为你做到了。它还为您管理记忆。

std::vector没有变满 - 它会尝试重新分配其缓冲区,例如push_back会超过当前容量 - 但您可以在顶部轻松添加此限制。我将向量包装在只提供相关公共操作的类中