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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数の値が勝手に変化する原因
-
プログラミング
-
Fortran90についての質問です。
-
ProC 固定SQLでNULLってどう表...
-
VBでContinueを使うには?
-
【CASLプログラム】 定数(80と...
-
65536は2の何乗なのでしょうか?
-
0除算して、落ちるプログラムと...
-
Bluestacks内でダウンロードし...
-
C++ で、「)」が必要 というエ...
-
正しい五十音順について
-
VBAで仕様書は書きますか?
-
「Outlookが他のプログラムによ...
-
排他的論理和 BCC(水平パリテ...
-
Vba UserFormを前面に出す方法...
-
テキストボックスのエンターキ...
-
GPIB制御
-
PICマイコンのコピー(クローン...
-
VBAの学習について
-
PICマイコン PGMの引継ぎ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数の値が勝手に変化する原因
-
Fortran90についての質問です。
-
Matlabについて質問2
-
【JAVA】数字をひし形に出力す...
-
fortran if文
-
JCLの基本について教えてください
-
Sublime Text 3でのFortranプロ...
-
ProC 固定SQLでNULLってどう表...
-
COBOLのピリオド
-
4桁の数値を逆に表示されるプ...
-
360度を超える角度
-
main関数終了時のreturnの意味は?
-
Fortran "実引数の型が仮引数の...
-
3つの整数のうち奇数のみを表示...
-
c言語のプログラミング 2つの整...
-
exitってどう使うの?
-
HeapDestroyを安全に行う方法
-
"n!"(階乗)の数字列の生成
-
PICのプログラムでsrandを使う...
-
fortranについて
おすすめ情報