我收到无法修复的错误:在抛出 'std::bad_alloc' what(): std::bad_alloc 的实例后调用终止(核心已转储)
I get the error which i cant fix : terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc Aborted (core dumped)
我用的是二维动态数组,不知道怎么解决,求大神指教!我想从用户那里得到一个字符串并将它分成一些字符串并将它们放入二维动态数组中。
它是我分配数组的代码部分。
int colCount,rowCount;
string** table = new string*[rowCount];
for(int i = 0; i < rowCount; ++i)
{
table[i] = new string[colCount];
}
您的代码没有初始化 colCount
和 rowCount
,因此它们的值是垃圾。您尝试使用未初始化的变量动态分配内存,这当然会调用 Undefined Behavior.
初始化您的变量,例如:
int colCount = 5, rowCount = 5;
PS:由于这是 C++,我建议你使用 std::vector
作为二维数组,例如:
std::vector<std::vector<std::string>> table;
我用的是二维动态数组,不知道怎么解决,求大神指教!我想从用户那里得到一个字符串并将它分成一些字符串并将它们放入二维动态数组中。 它是我分配数组的代码部分。
int colCount,rowCount;
string** table = new string*[rowCount];
for(int i = 0; i < rowCount; ++i)
{
table[i] = new string[colCount];
}
您的代码没有初始化 colCount
和 rowCount
,因此它们的值是垃圾。您尝试使用未初始化的变量动态分配内存,这当然会调用 Undefined Behavior.
初始化您的变量,例如:
int colCount = 5, rowCount = 5;
PS:由于这是 C++,我建议你使用 std::vector
作为二维数组,例如:
std::vector<std::vector<std::string>> table;