2Dのダイナミック配列に問題があります。コードはここにあります:動的な2D配列を削除できない
//Inicialization
char** arr = new char* [size];
for(int i = 0; i < size; i++)
arr[i] = new char[70];
基本的に最大70文字の文章です。 Ok ...私はそのように以前に使った。 私はそれを離脱したい - 私はあまりにもそれをやった!
//Deleting
for(int i = 0; i < size; i++)
delete [] arr[i];
delete [] arr;
そして、これはと右I = 0でクラッシュします: "式:_BLOCK_TYPE_IS_VALID(pHead-> nBlockUse)"。
しかし、私が言ったように - 私は、このように別のプロジェクトでそれを使用:
//Init
char** vety = new char* [pocVet];
for(int i = 0; i < pocVet; i++)
vety[i] = new char[100];
//Something (again a few sentences).
//Deleting
for(int i = 0; i < pocVet; i++)
delete [] vety[i];
delete [] vety;
私はここでどこにでも見て、それは同じです。なにが問題ですか? PS:それが動作する2番目の例では、私の母国語では異なる名前は気にしません。
編集:おそらくそれは配列の内容のためでしょうか?しかし、2番目の場合(それが動作する場所)には、その中の文章もあります。私はちょうどそれに質問の束を持って、ユーザーが唯一のアクションを選択してください - そうbasiclyそれだけの文章です:
arr[0] = " 1 - Use something\n";
arr[1] = " 2 - Use different thing\n";
arr[2] = " 3 - etc...\n";
arr[3] = " 4 - etc\n";
arr[4] = " 5 - etc\n";
arr[5] = " 6 - etc\n";
arr[6] = " 7 - etc\n";
私はprintfの...それで何もしません();
問題は、あなたが新しいアレイを使用する方法である限り、文字列リテラルは、サイズであるとして、あなたのために働く必要があります。 [あなたが投稿したもの](http://ideone.com/L3tg7j) – StoryTeller
は、割り振りとそれに続く削除の間のどこかで配列ポインタを踏んでいる可能性があります。 – Alnitak
確かに。私はちょうど2つのコンパイラであなたの初期コードを走らせました。問題はありません。 ... [mcve]が呼び出されます。 –