
HANDLE handle = HeapCreate( 0, 0, 0 );
HeapDestroy( handle );
HeapDestroy( handle );
このように、二重に開放すると、強制終了されてしまいますよね(不定義?)。
handleが有効であるときのみ開放すればいいみたいですが、プログラムの流れ以外で、どうやってそれが有効であることを判断すればよいのでしょうか?
handleの値自体はHeapDestroy前後で変わらないようなので、どうすればいいのかわかりません。
よろしくお願いしますっ
No.1ベストアンサー
- 回答日時:
> handleが有効であるときのみ開放すればいいみたいですが、
> プログラムの流れ以外で、どうやってそれが有効であることを判断すればよいのでしょうか?
普通はプログラムの流れで判断するものなので、
基本的にできないと思います。
API に食わせてみて、不正なハンドルエラーを取るとか、
そのくらいでしょうか。(このようなことは推奨しません)
> handleの値自体はHeapDestroy前後で変わらないようなので、
> どうすればいいのかわかりません。
色々な考え方があるでしょうが、例えば変わらないなら変えてあげます。
未検証ですが、イメージはこんな感じでしょうか。
BOOL
MyHeapDestroy(HANDLE& handle)
{
if(handle != NULL)
{
BOOL result = ::HeapDestroy( handle );
handle = NULL;
return result;
}
return TRUE; // 成功と扱う場合
}
どうもありがとうです。
やはりHeapDestroy単体での判断は無理でしたか。
となると、私も、示してもらったMyHeapDestroyのような考えが一番有効だと思います。
ただ、最後の
return TRUE
は、「成功と扱う場合」ではなく、「はじめからNULLであった場合」ですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 英語 These lesions are unlikely to respond to antibioti 1 2023/03/29 21:17
- 英語 Since there is no change in external dimensions, t 3 2023/04/07 23:34
- 英語 This is best accomplished by elevating the membran 1 2023/03/13 18:42
- 英語 In the author’s experience amoxicillin–or ampicill 3 2023/05/04 12:04
- 英語 The waiting time between stages is in the order of 5 2023/05/09 18:46
- 英語 The waiting time between stages is in the order of 2 2023/05/14 09:08
- 英語 Since there is no change in external dimensions, t 1 2023/04/03 22:42
- 英語 The external branch of the PSA artery may also be 1 2023/03/03 21:53
- 英語 The bleeding usually stops by the time the graftin 1 2023/03/05 21:53
- 英語 The fibrin membranes have sufficient strength that 1 2023/03/28 18:29
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Sublime Text 3でのFortranプロ...
-
360度を超える角度
-
ProC 固定SQLでNULLってどう表...
-
COBOLのピリオド
-
プログラミングソフトパスカル...
-
N88basicを用いたGPIB制御
-
あるプログラムのコマンドライ...
-
VBAで仕様書は書きますか?
-
正しい五十音順について
-
VBAにてメール作成した際、一部...
-
65536は2の何乗なのでしょうか?
-
EXCELなどで「返す」という表現
-
Excelで4096点以上のFFTの方法
-
Vba UserFormを前面に出す方法...
-
バッチファイルでUSB挿入時に実行
-
ABAQUS ユーザーサブルーチン...
-
VBAで関数をつくる
-
PICマイコンのコピー(クローン...
-
C++ で、「)」が必要 というエ...
-
内税の計算式
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数の値が勝手に変化する原因
-
【JAVA】数字をひし形に出力す...
-
360度を超える角度
-
プログラミングの問題です。
-
COBOLのピリオド
-
Matlabについて質問2
-
ProC 固定SQLでNULLってどう表...
-
fortran if文
-
3つの整数のうち奇数のみを表示...
-
4桁の数値を逆に表示されるプ...
-
Sublime Text 3でのFortranプロ...
-
JCLの基本について教えてください
-
c言語のプログラミング 2つの整...
-
Fortran90についての質問です。
-
Tiny Basicのプログラムです。。
-
素数を探すプログラム…。
-
Cプログラミング
-
3次関数を作るプログラム
-
Visual Basic 三辺の長さ? ...
-
CommonLispでハノイの塔の円盤...
おすすめ情報