問題タブ [static-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 に答える
2593 参照

c++ - 値へのポインターを 1 行で作成する

値へのポインターを 1 行で作成したいと考えています。これと同じ機能が欲しい:

ただし、これを 1 行で実行したいので、2 つの変数を使用したくありません。私はこれを行うことができることを知っています:

しかし、動的メモリは使いたくありません。静的メモリを使用したい。

1行で、1つの変数を使用して静的に値へのポインターを割り当てる方法はありますか?

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

c++ - 大きなローカル変数を持つ頻繁に呼び出される関数の最適化 (C++)

何百万回も呼び出す必要がある関数があるとしましょう。この関数によって実行される算術演算はそれほど重くはないため、重要なのはすべての変数がどれだけ速く割り当てられるかだけです。また、変数は常にスタックに割り当てられると仮定します。最も単純なケースの例:

関数がすべての変数を返すと、変数が破棄されることを知っているので、
この変数を静的またはグローバルにしてキャッシュする方がよいのではないでしょうか? それを最適化する最良の方法は何ですか?

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

c++ - 静的ポリモーフィズムの問題

私はマイクロコントローラーを使用しており(つまり、静的メモリ割り当てしかできないことを意味します)、継承を使用しようとしています.....

抽象クラスImageと抽象クラスがあるとしFontます。のインスタンスは、次のように、関数で指定されたのベースオフをFont返すことができます。Imagechar

GetImageここでの本当の問題は、関数に対して何をすべきかわからないことです。

問題はこれです: C++ では、抽象クラスのメンバーを持つためには、それをポインターとして使用する必要があります。したがって、私のジレンマはFont、新しいを作成してImageから返したいということです。

新しく作成されたオブジェクトへのポインターを返す場合はImage、一時オブジェクトへの参照を返しています。

そして、私が戻った場合、次のような実際の型を返そうとします:

では、この種の静的メモリの問題にはイディオムか何かがありますか?

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

c - Cの配列のメモリ割り当て

配列 "arr" のメモリはコンパイル時に割り当てる必要がありますが、この場合、ユーザー (実行時) から "a" の値を取得し、配列に同じサイズを割り当てます。どうか明らかにしてください。

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

c++ - 概念的なストレージ割り当てが実際のものと異なるのはなぜですか?

不可解な質問があります(少なくとも私にとっては)

整数配列を宣言するとします。

概念的には、コンパイル時に 3 つの連続する整数を格納するために 12 バイトがメモリに割り当てられるということですよね。(ここにイラストがあります

図に基づいて、サンプルアドレス

arr[0]1000

arr[1]であり1004

arr[2]です1008


私の質問は:

と のアドレスの差を出力するarr[0]arr[1]:

を得る代わりに4

私は驚くほど得1ます。

なぜその出力になったのか、誰か説明できますか?

PS: 私のコンピューターでは、int は 4 バイトです。

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

c - メモリ割り当てとプロセス メモリの使用

動的に割り当てられた複数回呼び出されたデータが、コードで直接指定されたものやmalloc.

例として、C で次の 2 つのコードを作成しました。

test1.c: int x が割り当てられますmalloc

簡単にするために、ここではfreeを使用しませんでした。プログラムが対話を待機しているときに、別の端末で一番上の関数を見ると、次のように表示されます。

test2.c: int x が動的に割り当てられていません

そしてトップは私を示しています:

また、使用した test2 と同じ結果になる 3 番目のコードも実行しました。

プロセスのメモリ使用量に大きな違いがあるのはなぜですか? これは、malloc が新しいメモリ ページを要求し、メモリが無駄になっているためですか? またはmalloc、より多くのメモリを割り当てますか?

test1 は合計メモリの3.3%を使用し、 test2 は0.5%を使用します。

環境:

Docker 内の Centos 5 64 ビットでこれらのテストを実行しています。

仮想環境のメモリ: