問題タブ [dynamic-allocation]

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 投票する
2 に答える
69 参照

exception - リソース取得の失敗処理

何年にもわたるプログラミングの後、私は常にそれをチェックしていますが、合理的なmallocまたはnewが失敗する状況はありませんでした(おそらく私のmallocが本当に合理的であるため)。

私の場合、アプリは適切なログエントリで正常に閉じる必要があります(願っています)。この場合、あなたはどうしますか?あなたのアプローチを聞くのは興味深いです-あなたはリソースを待つのですか、それとも店を閉めるのですか?

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

c++ - C ++リンクリストを含むクラスのオブジェクトを作成すると、リンクリストテンプレートクラスが失敗するのはなぜですか?

このLinkedListテンプレートクラスを作成しましたが、まだ完成していません。安全機能やその他のメソッドをまだ追加していません。今のところ、それは私がそれを必要とすることをします。しかし、特定の状況では失敗し、理由はわかりません。

私は質問で私の問題を述べました、そしてここに例があります:

なぜ正しく動作しないのか理解できません。

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

c - 動的に割り当てられた 2D 構造の解放

文字列のセットを保持するために、概念的にはマトリックスに非常に似た構造を動的に割り当てました。メモリを解放しようとしているときに問題が発生しました。私のコードは次のようになります。

したがって、構造体には実際には 2 つの配列が含まれています。1 つは文字列へのポインターであり、もう 1 つは、終端の \0 で区切られた、1 つずつ整列された文字列を含みます。

コードは正常に機能し、最後の for ループも同様に機能します。free への最初の呼び出しも機能します。問題は、free の最後の呼び出しが失敗することです。この問題に関するすべての可能なデータを検索しようとしましたが、私が見つけたすべての例は、文字列を保持する 2 番目の配列が for ループで段階的に割り当てられ、その後 for ループでも解放される場合を考慮しています。 .

ループ内での動的割り当ての使用を避けたかったため、コードが異なって見えます。

誰が問題が何であるか知っていますか?

================================================== ====================================

私に答えてくれた皆さん、どうもありがとう。最終的に、バグは解決されました。問題は、他のコードで dataPointersArray が SIZE を超える要素で満たされていたことでした。これは最初は無害に見え、実際には free 呼び出しが失敗しました。

コメントありがとうございます!シャチャー

0 投票する
6 に答える
62299 参照

c - スタックとヒープでのメモリ割り当て

これは非常に基本的な質問のように思えるかもしれませんが、私の頭の中にあるので、次のようになります。

ローカル変数を割り当てると、スタックに入ります。同様に、動的割り当てにより、変数はヒープになります。さて、私の質問は、この変数が実際にスタックまたはヒープ上にあるのか、それともスタックとヒープ内の参照にすぎないのかということです。

例えば、

変数を宣言するとしますint i。これで、これiがスタックに割り当てられます。それで、のアドレスを印刷するとi、これはスタック上の場所の1つになりますか?ヒープについても同じ質問です。

0 投票する
3 に答える
18671 参照

c - Cの関数内でグローバル変数(配列)を宣言する

Cでグローバル2次元配列を宣言する必要があります。

配列のサイズは、特定の画像の幅と高さによって決まります。

したがって、最初に画像をロードしてから、配列を作成する必要があります。ただし、変数(この場合は配列)をグローバルにする場合は、関数内ではなくファイルの先頭で宣言する必要があります。

では、main()関数の実行後にのみ配列のサイズがわかっている場合、配列をグローバルとして宣言するにはどうすればよいですか?

編集:(私は他の解決策も試したので、このコメントはそれらすべてを参照しています)@Mimisbrunnrまず、迅速な対応に感謝します!

試しましたが、うまくいくかわかりません。私はおそらく愚かな何かを見逃していますが、「配列」はどのようにしてグローバルになりますか?test()で、「配列」は宣言されていないと表示されます

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

c - セグメンテーション違反を引き起こす Calloc

これが私のコードです:

その意図は、(char *) に 2 桁の数字を割り当てることです。コードを実行すると、セグメンテーション違反が発生します。valgrind の outout は -

0 投票する
6 に答える
23265 参照

c++ - C++ でのオブジェクトの動的メモリ割り当て

非常に単純な C++ プログラムでオブジェクトにメモリを動的に割り当てようとしています (現在ほど動的ではありませんが、最終的にはそうなるでしょう) 。私はクラスに不慣れで、最近 C++ を使い始めたばかりで、C を置き去りにしています。コードは次のとおりです。

私の混乱の多くは、実際にはコード自体のコメントに含まれています。私は基本的に、配列の各要素がそれ自体のオブジェクトである配列cを作成しようとしています。

私が取得しているコードの動作は、コメントに記載されています。

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

dynamic-allocation - 構造体を動的に割り当てる方法と、callocを使用したTCHARメンバー配列です?

スタック上で簡単に構造をセットアップできます。

しかし、それはスタックスペースを使いすぎています。

代わりに、すべてをヒープに置きたいので、これを思いつきました:

sName にメモリを動的に割り当てるにはどうすればよいですか? 私はこれを試しましたが、コンパイルされません:

私は本当にここで何かを見落としています。誰か助けてくれませんか?ありがとう。

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

c++ - 動的割り当てを使用してのみオブジェクトの割り当てを許可する

私は小さなライブラリに取り組んでいます。そこでは、次の要件がありますclass X

  1. class Xを使用してのみ割り当て可能である必要がありますoperator new
  2. のすべての子は、class Xによってのみ暗黙的に割り当て可能になる必要がありますoperator new
  3. ヒープ割り当ての構文は洗練されている必要があります
  4. これを組み込むために既存のコードの多くを変更する必要はありません
  5. ある時点の後、class X自動として割り当てられるようにしたい場合。ここでも、多くのコードを変更する必要はありません

また、C ++ 0xソリューションを歓迎します(将来の使用のみ)。

[注:私は調査の一部を完了し、回答として投稿します(基本的なシナリオでテスト済み)]

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

c++ - new と new[1] の違いは何ですか?

newとはどう違いnew[1]ますか?deleteと一緒に使えますnew[1]か?

編集

そうですね、背景を提供するべきでした。申し訳ありません。私は VS 2010 で動作している BoundsChecker を評価していましたが、new[1] で delete[] を使用すると、メモリ リークが発生すると言われました。したがって、理論的には、new と delete のペアをどのように使用するべきかはわかっていますが、この特定の状況では、ボンネットの下にあるものについて混乱してしまいました。何が起こっているのですか?