O programa C ++ morre com std :: bad_alloc, mas o valgrind relata que não há vazamento de memória
Meu programa falha com a mensagem de erro 'std :: bad_alloc'. O programa é escalável, por isso testei em uma versão menor com o valgrind e não há vazamentos de memória.
Esta é uma aplicação da mecânica estatística, por isso estou basicamente criando centenas de objetos, alterando seus dados internos (neste caso, stl vetores de dobros) e gravando em um arquivo de dados. A criação de objetos fica dentro de um loop, portanto, quando termina, a memória fica livre. Algo como:
for (cont=0;cont<MAX;cont++){
classSection seccion;
seccion.GenerateObjects(...);
while(somecondition){
seccion.evolve();
seccion.writedatatofile();
}}
Portanto, existem duas variáveis que definem o tempo de computação do programa, o tamanho do sistema e o número de execuções. Existe apenas uma falha em grandes sistemas com muitas execuções. Alguma idéia de como pegar esse problema de memória?
Obrigado,