Exactamente no sé cómo, pero una buena idea es utilizar los contenedores que vienen con la librería de C++ en lugar de crear las propias (estoy intentando recordar sus nombres, pero hace años que no toco un programa en C++ y la memoria me falla, menos mal que alguien inventó los buscadores de Internet
). Ya sabes, la
STL con sus listas, colas, diccionarios, iteradores y demás.
La principal ventaja es que suelen lanzar excepciones cuando se sale de madre que podrás controlar mediante el consabido bloque 'try {..} catch (..) {..}'. Puede que no sea una solución para todos los casos, pero siempre puede ayudar.