-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

相關問題