...at runtime, what are you supposed to do? Obviously appending more memory to the end of the array is imposible since you can't allocate memory at any specific address. Allocating another larger array and then copying the contents over would work, but it would be horribly slow and would limit the size of the array to less than half the availible memory. An array of arrays would also work, but it would be somewhat limitting in the fact that memory would have to be allocated in fixed size blocks. Still, it seems like the only practical thing to do. Does anyone know of any other methods? Also, if an array of arrays is the only solution, is there a code library that can handle the required memory management so you can access data in a contegenous manner? In the past when I needed something like this I wrote it myself, to help me get better at C, but I'm getting to the point where I'm beyond the need for that so I'd like to focus on writing code that doesn't already exist . Plus I'd probobly never get it as optimised as a library created with some ASM code.