El programa C ++ muere con std :: bad_alloc, PERO valgrind informa que no hay pérdidas de memoria
Mi programa falla con el mensaje de error 'std :: bad_alloc'. El programa es escalable, por lo que he probado en una versión más pequeña con valgrind y no hay pérdidas de memoria.
Esta es una aplicación de mecánica estadística, por lo que básicamente estoy haciendo cientos de objetos, cambiando sus datos internos (en este caso, stl vectores de dobles) y escribiendo en un archivo de datos. La creación de objetos se encuentra dentro de un bucle, por lo que cuando termina la memoria está libre. Algo como:
for (cont=0;cont<MAX;cont++){
classSection seccion;
seccion.GenerateObjects(...);
while(somecondition){
seccion.evolve();
seccion.writedatatofile();
}}
Por lo tanto, hay dos variables que establecen el tiempo de computación del programa, el tamaño del sistema y el número de ejecuciones. Solo hay bloqueo para sistemas grandes con muchas ejecuciones. ¿Alguna idea sobre cómo atrapar este problema de memoria?
Gracias,