>インスタンス破棄時にメモリが解放されるようにしたい入力中の回答があります。ページを離れますか?※ページを離れると、回答が消えてしまいますページを離れるA回答を続ける入力中のお礼があります。21:22回答数:8件C++言語でプログラムを作成していますあるクラスでインスタンス生成時に動的にメモリを割り当てた後インスタンスが破棄されるまでそれを使用しインスタンス破棄時に解放するにはどうしたらいいでしょうかデストラクタで解放処理を実装すると明示的にデストラクタが呼ばれた際に解放されてしまいインスタンスが破棄されるまで使用できませんでした通報するこの質問への回答は締め切られました。02:50>明示的にデストラクタが呼ばれてしまった場合でも>リカバリーできるようにしたいのですそもそも明示的にデストラクタを呼び出した後、デストラクタを含めインスタンスメソッドが正常に呼び出される保証がありませんけど。#2で既に書いてますけど明示的にデストラクタを呼び出したことによってインスタンスの残骸にしてしまったものに、いったい何を期待してるんですか?インスタンスの残骸にインスタンスとして動くように期待しても、それは無理です。回答ありがとうございますリカバリーではなく、エラーを返すようにしようと思います。newを使用したときのためのものですから、#1のお礼に書いてあるようなする事が間違いです。18:18インスタンスが破棄される時にデストラクタが呼ばれる仕様となっています。「インスタンスが破棄された際に解放されてしまい、インスタンスが破棄されるまで使用できませんでした」となっていて、自明となります。して、プログラム終了まで動的に確保したメモリを使いたいということでしょうか?そうだとすれば、Formのクローズイベントなどで処理すればいいかもしれないです。「ある特定のインスタンスで動的に確保したメモリを他のインスタンスでも使用しているので、全ての参照がなくなったら破棄したい」という事なら、参照カウントを用意して、デストラクタが呼ばれた際にデクリメントしていって、参照が無くなった時に解法する方法も考えられます。補足しておきますが明示的にデストラクタを呼んだ場合は、インスタンスに必要なメモリが確保されてるだけの状態であってインスタンスとしては破棄済みです(だから#2では「インスタンスの残骸」と書いてる)。インスタンスに必要なメモリが確保されてるだけの状態であってインスタンスとしては破棄済みですなるほど。02:44デストラクタを呼び出した後のインスタンスの残骸に何を期待してるんでしょうか。明示的にデストラクタが呼び出されると、インスタンスが破棄されていなくても使用できなくなります。明示的なデストラクタ呼び出し。ここでインスタンスが破棄され、2回目のデストラクタが呼び出される。}デストラクタが呼び出された時ではなく、インスタンスが破棄されたときにメモリを解放するにはどうしたらいいでしょうか。C#のメモリ解放についてご教授ください。クラスのオブジェクト(インスタンス)を複数個作成し、結果を表示すること。Form1からForm2を開い...9ハンドルからインスタンス?を取...10インスタンス参照でアクセスで...11C#のメモリ解放についてご教授...12シングルトンパターン13複数クラスで共通の関数、変数...14float型とdouble型の変数の違い...15c++,ある関数のクラスから別の...16C#にて別クラスの関数を使いたい17C言語の複素数についてです。Inc.Q質問する(無料)Q&A検索goo検索gooIDで新規登録・ログイン新規登録する(無料)会員の方はこちら外部サービスのアカウントで新規登録・ログインYahoo!で新規登録・ログインGoogleで新規登録・ログインTwitterで新規登録・ログインFacebookで新規登録・ログインdアカウントで新規登録・ログイン※各種外部サービスのアカウントをお持ちの方はこちらから簡単に登録できます。お客様の許可なしに外部サービスに投稿することはございませんのでご安心ください。会員でない方、会員になるとあなたも質問や回答ができるようになります!!親切・丁寧な回答が集まる場30分以内に回答がもらえ回答数は平均3件!匿名(ニックネーム)での投稿なので。