我得到了我无法解决的错误:在抛出' std :: bad_alloc'的实例后终止调用what():std :: bad_alloc Aborted(core dumped)

时间:2017-10-06 09:57:06

标签: c++ arrays memory-management dynamic-memory-allocation bad-alloc

我使用2D动态数组,我不知道如何修复错误,请帮助我!我想从用户那里得到一个字符串并将其分成一些字符串并将它们放入2d动态数组中。 它是我分配数组的代码部分。

    int colCount,rowCount;
    string** table = new string*[rowCount];
    for(int i = 0; i < rowCount; ++i)
    {
    table[i] = new string[colCount];
    }

1 个答案:

答案 0 :(得分:2)

您的代码未初始化colCountrowCount,因此它们的值是垃圾。您尝试使用未初始化的变量动态分配内存,当然,这会调用 Undefined Behavior

初始化变量,例如:

int colCount = 5, rowCount = 5;

PS:由于这是C ++,我建议您使用std::vector作为2D数组,例如:

std::vector<std::vector<std::string>> table;