1
這被編譯在64位VS C++ 2015的std ::發生bad_alloc的,其中x是特別1120.push_back()上的大載體引起的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);
}
}
}
}
我認爲它使用了太多的內存。你應該能夠看到到達崩潰點時使用了多少內存。 –
[無法複製](http://coliru.stacked-crooked.com/a/fafd1d273a5f4e1f) –
@πάνταῥεῖ它在1040結束。當我在coliru上嘗試時,我已經過期。 –