If you’re still using the almost deprecated malloc(), free() and realloc() just because you need a dynamic memory container which expands and shrinks upon request, you should seriously consider using standard vetcor<> instead. Vector has some advantages over the C function mentioned above: it’s generic, and hence, supports any type of data (primitives, pointers and class objects. Mind that the C functions do not support objects); it’s underlying implementation is optimized for the current platform, and as a result – you get the best performance; and finally, it supports other STL algorithms such as sort(), reverse() and merge().