問題タブ [automatic-storage]

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 に答える
105 参照

c++ - スタックとヒープ モデル以外に、C++ 用に実装されている自動および動的ストレージの形式は他にどのようなものがありますか?

C++ 仕様では、スタック/ヒープ モデルを使用して割り当て/割り当て解除を具体的に実装する必要がないため、「自動」ストレージと「動的」ストレージという用語は、それぞれ「スタック」と「ヒープ」よりも C++ 仕様で好まれます。

スタックとヒープ以外の割り当て/割り当て解除の代替モデルはありますか?

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

c++ - 自動オブジェクトのデストラクタが 2 回呼び出されるのはなぜですか?

(私の質問への回答にはコピー コンストラクターが含まれますが、コピーは別のクラスへのメソッド呼び出し内ではなく、関数からの戻り時に行われます。参照されている可能性のある重複を実際に見ましたが、vector によって作成されたコピーから推測しませんでした::ここにある私の関数もコピーを作成したことを push_back します。

自動オブジェクトの構築/破壊を理解しようとしています。疑わしいと思われるコードに出くわしたので、それを理解するために独自のバージョンを作成しました。つまり、元のコードには、関数に対してローカルなオブジェクト (自動オブジェクト) を返す関数が含まれていました。それは私には安全ではないように見えたので、それを調べるためにこのプログラムを書きました:

私はこの出力を得ます:

私を混乱させるのは、出力の 4 行目です。

ファントム 1 はmainを入力すると自動的に構築されます。

ファントム 2 は、getPhantom入力すると自動的に構築されます。

Phantom 2 は終了時に自動的に破棄されますgetPhantom(これが、Phantom 2 からの復帰getPhantomが安全ではないと私が信じている理由です)。

しかし、その後、私は混乱しています。デバッガーによると、出力の 4 行目が表示される前getPhantomに戻ってきました。のデストラクタが 2 回目に呼び出されると、コール スタックは次のようになります。Phantom

管理された言語では、次の行がどのように表示されるかを確認できました。

Phantom 1 は破壊されますが、Phantom 2 には影響しません。これは C++ であり、Java ではありません。

Phantom 2 のデストラクタへの 2 回目の呼び出しの原因は何ですか?

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

c++ - なぜこの自動保管構造がまだ存在するのでしょうか?

コード

stack.h:

main.cpp:


述べる

ほとんどのmain()ことはおそらく無関係ですが、私がやっていることを示したいだけです。push()pop()が重要なブロックです。

上記のコードは、スタックをItems で埋めることになっています。がItemポップされると、実行中paymentの に追加されますtotal

Stackまた、 のメソッドpop()push()関数を区別してmain()ください。


ジレンマ

コードは希望どおりに機能しますが、理由がわかりません...

関数でローカルを作成しItemますpush()。参照され、 に配置されますStack。しかし、push()関数が終了すると、このローカルItemは自動ストレージにあるので削除されるべきではないでしょうか? pop()それでも、私が呼び出すと、そこにあるので、どういうわけかまだ存在しています。

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

c - 自動変数へのポインタを返す関数

そのため、私は脳画像 I/O の 10 年以上の歴史を持つ「標準」ライブラリを使用しています。私はこの機能に遭遇しました:

私の質問は、この関数が自動変数へのローカル ポインターを返すのはなぜですか? nimポインタが範囲外になり、関数の完了後に削除されることになっているため、この慣行は禁止されていませんか?

私はすでにこの質問を読みましたが、答えが得られませんでした:

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

save - Debian を自動的に保存する

私は Debian サーバーを持っており、いくつかのファイルを自動的に「保存」して、自動的に googledrive に送信したいと考えています。この自動タスクは定期的に (たとえば、毎週) 実行する必要があります。