Cela a été compilé sur 64 bits VS C++ 2015 std :: bad_alloc se produit où x est spécifiquement 1120.push_back() sur grand vecteur provoque std :: bad_alloc
static std::vector<std::vector<std::vector<double>>> g_damagefunction;
static std::vector<std::vector<double>> g_has_damagefunction;
static std::vector<double> null_v_double;
static std::vector<bool> null_v_bool;
static std::vector<std::vector<double>> null_vv_double;
int main(){
for (int x = 0; x < 4400; x++) {
std::cout << x << '\n';
g_damagefunction.push_back(null_vv_double);
g_has_damagefunction.push_back(null_v_bool);
for (int y = 0; y < 2000; y++) {
g_damagefunction[x].push_back(null_v_double);
g_has_damagefunction[x].push_back(false);
for (int i = 0; i < 41; i++) {
g_damagefunction[x][y].push_back(0.0);
}
}
}
}
Je pense qu'il est utilisé trop de mémoire. Vous devriez être capable de voir combien de mémoire est utilisée lorsqu'elle a atteint le point d'impact. –
[Pas de repro] (http://coliru.stacked-crooked.com/a/fafd1d273a5f4e1f) –
@ πάνταῥεῖ il se termine à 10 h 40. J'ai été expiré quand je l'ai essayé sur coliru. –