A direct array, or even a pointer, is a more direct approach. It should generate more efficient code than going through an extra layer. But of course, if you don't know how much data you want to store beforehand, arrays are pretty bad, particularly if there are many of them.

It's all about choices, and understanding what works when, and how.

--
Mats