問題タブ [dynamic-memory-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 に答える
439 参照

c++ - ポリモーフィック データ型にメモリを動的に割り当てるにはどうすればよいですか?

Multinumber 型のあらゆるものをポリモーフィックに保持および管理できるセット クラスがあります。これは、タイプ Pair、Rational、または Complex のオブジェクトにすることができます。私が直面している問題は、このクラスには動的なメモリ管理が必要であり、多くの場合、以下の関数のように、どの型を割り当てればよいかわからないことです。セットは型にとらわれないため、Multinumber* var=new Complex、Rational、または Pair を実行する必要があるかどうかはわかりません。最初に追加するもののタイプを確認する方法、またはスライス効果なしでこの情報を別のデータタイプに保存する方法はありますか? 私がこの問題を抱えている関数の1つは次のとおりです。

編集: operator+ が呼び出され、すぐにオブジェクトをここに送信する必要があり、呼び出し元のクラスが型を知らない場合など、これが割り当て可能な唯一の場所である状況について話しています。Set operator+ オーバーロードのコードで発生します。これは、Set が格納しているものがわからないためです。

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

c++ - この関数内でメモリを割り当てるにはどうすればよいですか?

次の関数と、Multinumber が Pairs、Rational、および Complex によって継承されるようなクラスの階層があります。これらはすべて、Multinumber で仮想的な機能を共有します。私の問題は次のコードです。現在の書き方では、 newElement 変数は mysetArray型の my に追加されると範囲外になりMultinumber**、この関数内でメモリを割り当てる方法を見つける必要があります。奇妙なことに、最初の行に出力された場合でも、関数に渡されるパラメーターは常に空cout<<newElement->tostring();です。

編集: はい、ポスターは正しいです。これは宿題です。

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

c++ - 十分なメモリが利用可能であっても、realloc/HeapReallocは失敗します

私のマシンには8GBのRAMがあり、Windows Server 2008を実行しています。アプリケーションに1.5〜1.7GBがすでに割り当てられている場合、malloc / realloc()はより多くのメモリを割り当てることができません。代わりにHeapAlloc/HeapReallocに切り替えてみましたが、同じ状況が発生します。

ここに欠けているものはありますか?明らかに使用可能なRAMがある場合、アプリケーションがより多くのメモリを割り当てることができない原因は何でしょうか。

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

c++ - 配列C ++のメモリを再割り当てする

私はC++リファレンスを調べていて、動的メモリ管理を見つけ、メモリを再割り当てする関数を調べていました。この関数を使用して配列を大きくできるかどうか疑問に思っていました。それが彼らの意味だと思いますが、私は本当に理解していませんこの行

これは cplusplus 参照の例に表示されるので、ここで私の質問を簡単に説明します

realloc()配列を大きくするために使用できますか? ありがとう :)

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

c++ - クラス内の動的メモリ配列の初期化

私は C++ プログラミングが初めてで、これはおそらく些細な問題ですが、クラスで可変サイズの配列を構築し、テキスト ファイル データをそこに転送する必要があります。以下を参照してください。ここHISTORYFile >> ClusterCoord[i];では情報をうまく取り込めるようですが、メインプログラムの情報にアクセスしようとすると、

バスエラーが発生します。できれば助けてください!

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

c - C Malloc 実行時エラー

次のコード スニペットがあります。

それをコードの残りの部分と統合すると、実行が開始され、弾道が進みます。

何がうまくいかないのですか?私はそれが私のmallocに関係していると感じています。

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

java - Javaで初期化されていない配列を埋めますか? (または回避策!)

現在、opengles android ゲーム用の OBJ インポーターを作成中です。私はJava言語に比較的慣れていないので、いくつかのことについて正確にはわかりません。

モデル内の頂点の数を保持する配列があります (他のいくつかの配列と一緒に):

問題は、与えられた入力ストリームを使用してファイルを読み取る前に、モデルにいくつの頂点があるかわからないことです。

私はこれを好きになる必要があるので、それを埋めることができますか?:

または事前に初期化する必要がありますか?

後者の場合、ファイル内の頂点の数を調べるにはどうすればよいでしょうか? inputstreamreader.read() を使用して読み取ると、ファイル全体を読み取るまで次の行に進みます。私が考えることができる唯一のことは、ファイル全体を読み取り、頂点の数を数えてから、新しく初期化された配列の塗りつぶしを再度読み取ることです。

必要に応じてデータを動的に割り当てる方法はありますか?

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

c++ - スローまたは例外?

私は学生で、C++ についての知識はほとんどありませんが、それを拡張しようとしています。これは哲学的な質問です..私は何かを実装しようとしているわけではありません。

以来

例外を非表示にします。単純な割り当てに比べて例外の処理が重いため、単純な割り当てが成功したかどうかを確認するために を使用する必要があることを考えるとif(t)、なぜ通常のnew T()方法があまり良い習慣と見なされないのでしょうtry-catch()か (そうでない場合は、プログラムが死ぬのを見るだけです)??

newを使用する場合と比較して、通常の割り当ての利点は何nothrow newですか? その場合の例外のオーバーヘッドは重要ではありませんか?

また、割り当てが失敗したとします (たとえば、システムにメモリが存在しません)。その状況でプログラムができることはありますか、それとも正常に失敗するだけですか。すべてが予約されている場合、ヒープ上の空きメモリを見つける方法はありませんか?

割り当てが失敗し、 anstd::bad_allocがn の場合、オブジェクト (たとえば a ) を割り当てるのに十分なメモリがないため、例外を格納するのに十分なメモリがあるthrowとどのように仮定できますか??new int

御時間ありがとうございます。質問がルールに沿っていることを願っています。

0 投票する
7 に答える
1613 参照

c - 割り当て問題のない realloc()

クラスメートの 1 人がコードを送ってきて、何が問題なのか尋ねました。それは次のようなものでした:

ユーザーから数字を取得し、素数の数字を保持して、最後にそれらを出力することになっています。私のコンピューターの出力は次のようなものです。

コードには他にもありましたが、最大の問題は明らかに realloc() の戻り値を割り当てていないことです。しかし、奇妙なことは、私の質問ですが、なぜこのコードは最初の素数が正しくなく、他の素数が正しく表示されるのでしょうか? 動的配列のアドレスは変更される可能性がありますが、最初のものではなく、2 番目のものと残りの部分が正しいのはなぜですか?

編集:わかりました、私がこれを尋ねた理由は、このコードでの realloc() の動作を理解しようとすることでした。適切なリソースがあれば共有してください。メモリを再割り当てするとき (古いメモリを解放するとき)、realloc() は古いメモリ位置の内容を変更しますか?

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

c - Cを使用して同じ関数で異なる種類のタイプのサイズを取得するにはどうすればよいですか?

mallocで作成された動的メモリオブジェクトのサイズを大きくする関数を書いています。関数は、引数として、増加するメモリブロック、ブロックの現在のサイズ、およびブロックが増加する量へのポインタを取得する必要があります。

このようなもの:

問題は、pntが何を指していても関数を機能させたいということです。どうすればそれを達成できますか?