Memory management ArrayList的动态内存分配?

Memory management ArrayList的动态内存分配?,memory-management,assembly,arraylist,mips,mars-simulator,Memory Management,Assembly,Arraylist,Mips,Mars Simulator,在MARS emulator上使用MIPS ISA读取midi文件后,我尝试将解码的事件存储在一个数组列表中,该数组列表将在播放每个事件时读取。 因为包容数据结构是一个数组列表,所以它必须能够动态地收缩和增长 在我的方案中,每个事件将存储为数组中的两个字。这意味着每次我向数组列表中添加一个元素时,列表必须增加8个字节 我的问题是,如何为分配期间不知道大小的数组动态分配足够的内存?然后我将如何浏览这个创建的列表?在程序开始时从堆中为数组分配可能的最大大小,或者使用不同的数据结构,例如可以逐段分配的

在MARS emulator上使用MIPS ISA读取midi文件后,我尝试将解码的事件存储在一个数组列表中,该数组列表将在播放每个事件时读取。 因为包容数据结构是一个数组列表,所以它必须能够动态地收缩和增长

在我的方案中,每个事件将存储为数组中的两个字。这意味着每次我向数组列表中添加一个元素时,列表必须增加8个字节


我的问题是,如何为分配期间不知道大小的数组动态分配足够的内存?然后我将如何浏览这个创建的列表?

在程序开始时从堆中为数组分配可能的最大大小,或者使用不同的数据结构,例如可以逐段分配的链表。

我希望我不必只分配最大空间。看起来有点原始!我想我不应该期望在装配层面上有更多。