-1

我用二维动态数组,我不知道如何修复错误,请帮助我!我想从用户获取一个字符串,并将其分离为一些字符串,并将它们放入2d动态数组中。 它是我分配数组的代码部分。我得到我不能修复的错误:抛出'std :: bad_alloc'实例后终止什么():std :: bad_alloc中止(核心抛弃)

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

要开始你应该使用'std :: vector'代替。你可以在另一个向量中嵌套一个向量。 –

+3

至于你的问题,请尝试创建一个[最小化,完整和可验证的示例](http://stackoverflow.com/help/mcve)并告诉我们。例如,您需要告诉我们“colCount”和“rowCount”的值,并且最好告诉我们如何初始化它们。请花一些时间[阅读如何提出好问题](http://stackoverflow.com/help/how-to-ask)。 –

回答

1

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

初始化变量,如:

int colCount = 5, rowCount = 5; 

PS:由于这是C++,我建议你使用std::vector作为一个二维数组,像这样的例子:

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

我希望类型是字符串,我可以使用字符串的2D矢量来模拟类型数据库吗? – shirazy

+0

2D vectror为您提供了矩阵@shirazy,其中'table [i] [j]'是一个字符串。所以是的! – gsamaras

+0

抱歉,但我不明白。我想要一个2D矢量字符串,这可能吗?像这样的矢量>或者使用2D动态数组将会是一个更好的主意? – shirazy

相关问题