otra es incluir en tu tipo arreglo un contador q sume cada vez q agregas un elemento y reste cuando eliminas uno, es muchisimo mas eficiente solo por una operacion y un contador mas de espacio
es un array creado dinámicamente. malloc, calloc, realloc, etc, son para C, y el new tiene la misma función en C++. Digo, claro que puedes emplear malloc et. al., pero también el new.