-1

2Dダイナミック配列を使用しました。エラー、私を助けてください!私は、ユーザーから文字列を取得し、それをいくつかの文字列に分けて、2次元動的配列に入れたいと思う。 私は配列を割り当てるコードの部分です。私は修正できないエラーが発生しました: 'std :: bad_alloc'のインスタンスをスローした後に呼び出される終了しますwhat():std :: bad_alloc Aborted(コアがダンプされた)

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

:これはC++であるので、私はあなたが例えば、このような2次元配列としてstd::vectorを使用することをお勧め'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:開始するには

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

タイプを文字列にしたい場合は、種類データベースをシミュレートするために文字列の2Dベクトルを使用できますか? – shirazy

+0

2D vectrorはあなたに行列@shirazyを与えます。ここで 'table [i] [j]'は文字列です。あ、はい!申し訳ありませんが、わかりません。 – gsamaras

+0

私は文字列の2Dベクトルを持っていたい、それは可能ですか?このベクトル<ベクトル>のようなものや、2Dダイナミックアレイを使用する方が良いアイデアでしょうか? – shirazy

関連する問題