how to implement expanding 1-D array?

I need to use a 1-D array that will expand dynamically during execution,
such that the exact growth and final size are not know in advance.

This array has to be transferred to the GPU, where the array will be processed by
a kernel, then the CPU will analyze the results and add new entries to the 1-D array,
such that the new entries will have to be transferred to the GPU representation of
this array.

What is the most efficient way to implement this 1-D array, its resizing, and the
transfer of the new entries to the GPU (where the array will have to be resized as well.

Thank you very much.