問題タブ [bad-alloc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
940 参照

c++ - std::vector での C++ std::bad_alloc エラー

この質問が以前に尋ねられたことは理解していますが、回答は質問者のコードに対してあまりにも具体的であるように思われました。

これが役に立たない重複した質問と見なされる場合は、遠慮なく削除するか、重複としてマークしてください。

私が知る限り、私のコードは、テキスト ファイル内の指定された単語の出現回数を数えている、私が達成しようとしているものに対して正しいです。助けていただければ幸いです、ありがとう。

エラー

私のmain.cppの一部(問題の原因)

0 投票する
1 に答える
346 参照

c++ - 大きな配列のマージソートを実装する際の bad_alloc 例外

C++ を使用してマージ ソート アルゴリズムを実装しています。大きな配列のソート中に、例外 (bad_alloc) が発生します。私はC++が初めてなので、このエラーを取り除く方法がわかりません。私が喜んで答えるのは、例外を処理することではなく、理由です。

最初にmerge_sort関数を呼び出す私の主な方法は次のとおりです。

1000000 要素まではこれで問題なく動作します。サイズ 10000000 の配列をソートするときに問題が発生しています。

テスト用の完全なコードを次に示します。

誰かが修正ではなく、この背後にある理由を教えてくれる方が良い. ありがとう!

0 投票する
2 に答える
459 参照

c++ - std::bad_alloc を取得した場合はどうすればよいですか?

2d生物クラス ポインターの配列を作成します。

私が持っている場合はbad_alloc、より小さな int 値で init を呼び出したいと思います。アレイをdelete失敗させる必要がありますか、それとも単に実行できますか? はいの場合、それを削除するにはどうすればよいですか。アレイアプリケーション全体をループすることはできません。クラッシュするだけです。

0 投票する
1 に答える
1823 参照

c++ - std::bad_alloc: Eigen でのバッファ サイズの決定

Eigen の行列形式を使用して、以前に取得した多次元データを読み取ります。

後で私のデータサイズを知った後:

PackSizeの順序である可能性があり6e08ます。バッファサイズを計算するときの整数オーバーフローを避けるために、以前は win32unsigend long longでアドレス指定できました。(PackSize* 12*8) mod (2^32)それでも、私は次のことを思いつきますUnhandled exception at 0x75362F71 in DataRead.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x004CBCF0。誰かがこの問題を処理するのを手伝ってくれませんか?

0 投票する
1 に答える
1094 参照

c++ - operator= メソッドが呼び出されると std::bad_alloc 例外がスローされます C++

多項式である C++ で最初のクラスを作成していますが、実行時に bad_alloc 例外がスローされました。

bad_alloc がスローされる (そしてプロセスが -1073741819 ステータスで終了することもある) という事実は、メモリがいっぱいであるという事実とはほとんど関係がないと思いますが、それよりも、クラスの構築方法に根本的に問題があるという事実とは関係がないと思います (そして動的メモリを扱うのも初めてです)。どんな助けでも大歓迎です。

0 投票する
1 に答える
4295 参照

c++ - vector が bad_alloc をスローしています

std::bad_alloc例外をスローしている次のコードがあります。

このコードnlinesは、約 500,000 (ncolumns通常は 10 未満) のときに機能するようですが、フル サイズのデータ​​ セットでこれを試したところ、nlines= 2,600,000 で bad_alloc 例外が発生しました。

私は 12 GB のメモリを持っており、プログラムの実行時にメモリ使用量を見ると、28% (開始前) から最大 42% (例外がスローされたとき) になります。そのため、まだメモリが使用可能であるように見えます。

ベクトルがメモリをヒープに割り当てるというこの投稿を見つけました。この MSDN ページにリンクしているこの投稿によると、コードで使用できるヒープの量 (バイト単位) を設定できます。最初、ヒープ コミット サイズとヒープ予約サイズは空白でした。2000000000 (2 GB) の値を入力しても、同じ問題が発生します。

興味深いことに、この C++ コード (CLI ではない) は、C#.NET アプリケーションからの相互運用機能を使用して呼び出されています。Heap Commit Size と Heap Reserve Size への変更は、C++ プロジェクトで設定されました。これらを .NET プロジェクトにも設定する必要があるかどうか、またはこれを行う方法がわかりません。

アドバイスや助けをいただければ幸いです。

0 投票する
4 に答える
752 参照

c++ - std::string を返す関数での例外処理

std::bad_allocこの関数で例外を処理する方法:

どの stl コンストラクターbad_allocでも をスローできるため、次のようにする必要があります。

繰り返しcatchますが、ブロックはまだ安全ではありません。

この関数の例外を証明したいだけです。

0 投票する
1 に答える
1211 参照

c++ - std::unordered_map に挿入するときの std::bad_alloc?

次のコードで std::bad_alloc が発生することがあります。

その行を含むメソッドを使用するテスト ケースの実行中に発生する場合と発生しない場合があります。コードを usem_foo[id] = beiに変更したため、1回のコンパイルで発生しなくなりましたが、再コンパイルすると失敗したため、上記に変更しましたが、失敗し続けました。明らかに、問題はそれよりも深刻です。

topテストケースの実行中に実行していて、メモリがいっぱいになることはほとんどないので、メモリ不足の問題ではないと確信しています。

std::bad_alloc の原因は何ですか? これを引き起こしている可能性chashのある詳細は何ですか?block_extended_infoこれらのタイプのオブジェクトはコピーされ、コードの他の部分のいたるところに渡されますが、問題は発生しません。

の定義は次のchashとおりです。

以下は、定義に必要なすべてのものですblock_extended_info

gdb の関連する領域を歩き回ると、bad_alloc につながる最新の数行を次に示します。

0 投票する
2 に答える
99 参照

c++ - この些細な例で new を安全に呼び出す最善の方法は?

学校のプロジェクトでは、卵、巣、鶏の 3 つのクラスがあります。を使用newして each のインスタンスを作成し、each をmain呼び出しdisplay()てから、明示的にそれぞれを削除する必要があります。それはすべて簡単です。

bad_alloc私の問題は、 ;を適切にキャッチする方法がわからないことです。newいずれかの呼び出しで 1 をスローする必要があります。

現在、次のようになっています。

newブロックの最初から最後までdeleteブロック全体をラップし、try, をキャッチして各インスタンスbad_allocを呼び出すdeleteことを考えましたが、次のシナリオを考えました。

  • egg正常に作成されました
  • nest失敗し、bad_alloc

この時点で 3 つすべてに対して delete を呼び出すとhen、そもそも割り当てられていないため、別の例外がスローされるはずです。したがって、解放することはできません。

理想的には、newこのようにオープンに使用しないことはわかっていますが、この状況を処理する最善の方法は何ですか? 適切に処理するにはあまりにも些細で人工的すぎますか?