問題タブ [delete-operator]

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

c++ - C++ 削除演算子の混乱

重複の可能性:
(POD)メモリの解放: delete[] は delete と同じですか?

0 投票する
10 に答える
119923 参照

c++ - C++で「これを削除」は許可されていますか?

delete this;delete-statement がクラスのそのインスタンスで実行される最後のステートメントである場合、許可されますか? もちろん、this-pointer によって表されるオブジェクトがnewly-created であることは確かです。

私は次のようなことを考えています:

これはできますか?

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

c++ - `delete` とポインタについて不明確

次のコードがあるとします。

最後の行は、その上の行とまったく同じことをしますね。だから私は今delete、無効/NULL ポインターを ing しているでしょうか?

これがばかげた質問かもしれないことは理解していますが、それでも、安心が必要です。

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

c++ - g ++ダブルフリーまたは破損...しかし、どうやって?

コードに問題があるようで、問題を特定するのに役立つかどうか疑問に思いました... gdbとvalgrindを使用してみましたが、後者の方が便利ですが、それでもバグを修正できません。

以下は私のクラスのコードです(これは私の縮小版ですが、問題の主な本質は残っています):

/ * Vector.h * /

/ * PhysicalState.h * /

/ * PhysicalState.cpp * /

/ * Test.cpp * /

長さについて申し訳ありません。valgrindからの出力は次のとおりです。

これを手伝ってくれる人に事前に感謝しますそれは私を夢中にさせています!! GD。

PS:me =(* this); 何もない=0;

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

c++ - ポインタを解放する関数を記述し、それにNULLを割り当てる

私は最近のインタビューでこれを尋ねられました。基本的には、無料の機能とnullの割り当ての機能を組み合わせる関数を作成しています。私は次のように答えました:

したがって、実行後、関数から返すときにptrローカルtomainはnull値を保持しますnewdeleteNULLnewdelete関数で割り当てたばかりの場合、ptrローカルtonewdeleteはnullになり、ptrローカルtoはnullになりmainます。

私の解決策は正しかったと思います。インタビュアーもそれを受け入れました。しかし、彼は他の答えを期待していました。彼は、私が関数からを返さずNULL、それでも望ましい結果を達成すると主張していました。

それを達成する方法はありますか?私が考えることができるのは、ptrローカルのポインタへのポインタである別の引数を渡すことmainだけですが、なぜそれが私がしたよりも優れているのかわかりません!

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

c++ - 同じオブジェクトへの2つのポインタでdeleteを呼び出す

書き込もうとしているいくつかのイベントハンドラークラスに問題があります。基本的には、オブジェクトの論理グループごとにイベントハンドラークラスを用意するという考え方です。ほとんどの場合、イベントはオブジェクトとそのハンドラーの間で発生しますが、場合によっては、イベントがハンドラーオブジェクト間でも送信されます。

イベントがスタックに配置されるようにコードを記述しました(ユーザーが作成した構造のようにスタックします。イベント自体はを使用して割り当てられますnewdelete。dは、情報が読み取られて処理された後です。あるケースでは、イベントが3つのハンドラーのチェーンに沿って送信されるため、これは私にいくつかの問題を与えています。たとえば、にHandlerAを送信しますnew EventHandlerBこれは、スタックに配置して読み取り、に送信します。に送信するとHandlerC、読み取りと実行に必要な処理が実行され、その後delete、イベントポインタがに設定されNULLます。今、私たちは戻ってHandlerB、まあ、それはまたしたいと思っていdeleteますNULLイベントへのポインタ。ただし、ポインタはローカル変数であり、同じアドレスを2回削除することになり、例外が発生します。

これをどのように回避しますか?あなたはそれらの派手なものの1つを使う必要がありますかauto_ptr(まだここでは初期の学習者です)、それとも私はここで基本的な何かを逃していますか?

0 投票する
9 に答える
9208 参照

c++ - delete が何も破壊しないのはなぜですか?

メモリの動的割り当てで少し遊んでいますが、ポイントがわかりません。ステートメントでメモリを割り当てるときnew、ポインターが指しているメモリを使用して破棄できるはずですdelete

しかし、試してみると、deleteポインターが指しているスペースが空になっていないように見えるため、このコマンドは機能していないようです。

例として、この本当に基本的なコードを見てみましょう。

どんな手掛かり ?

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

javascript - JavaScript オブジェクトから偽物を削除する

そこで、偽の値を持つオブジェクトからメンバーを削除する短い関数を作成します。

数日後、ソース管理をチェックすると、誰かがこれを次のように変更しました:

チェックインに関するコメントはなく、その男は今日仕事でここにいません。

どちらの実装が優れていますか? 各メソッドのパフォーマンスへの影響は何ですか?

0 投票する
5 に答える
920 参照

c++ - ダブル無料腐敗

クラスコールグリッドがあります。このクラスは、グリッドを格納するための 2 つの 2D char 配列を保持します。クラスには、グリッドのメモリを作成し、グリッドのメモリを解放するための 2 つの関数があります。

Grid.h

Grid.cpp

問題は、次のエラーを受け取るメモリの割り当て解除で発生しています。

私はすべてのポインターが実行中に他の何かに変更されていないこと、および考えられるすべてのチェックとバランスが儀式で行われていることを確認しました。私はここ数時間髪を引っ張っていますが、まだ何もありません.

ubuntu 10システムでgccでこれを実行しています。

また、この投稿の目的で名前などを変更し、価値があると思われるコードのみを含めたことにも注意してください。

編集:

構文の問題を修正しましたが、元のコードにはこれがあり、すぐに入力しただけで、校正はしていませんでした。

どんな助けでも大歓迎であり、私の本の金の星に値します. 私は非常にgdbの上級ユーザーであり、この問題でこれを使用しましたが、おそらく外部ライブラリの問題であると考えています。誰かがこのようなものを見たことを期待するだけで、メモリとそのスコープに問題は見られません。すべての目的で、このコードは問題ありません。

0 投票する
10 に答える
18531 参照

c++ - C++でポインタのstd::vectorを解放する正しい方法は何ですか?

StackOverflowを検索しましたが、この質問に対する答えが見つかりませんでした。

std::vector<Day *> vector_dayオブジェクトへのポインタのベクトルである-を持っていると仮定しDayます。今私push_backvector_day多くの要素に:

今、ある時点で私はもう必要ありませんvector_day。メモリを解放する正しい方法は何ですか?

これは正しい方法です:

これは、削除するたびにベクトルを無効にしませんか?私は非常に混乱しています。