まず、メモリを割り当ててポインターを取得します。
IntPtr pointer = Marshal.AllocHGlobal(size);
次に、ポインターが指すメモリを解放しようとします。
Marshal.FreeHGlobal(pointer);
しかし、私のアプリケーションでは、「メモリフラグメントが破損しています」という説明だけで、致命的な未知の例外が発生することがあります。これは、別のポインターを解放することによって、既に割り当て解除されているメモリ ブロックを指すポインターを解放しようとするためだと思います...
私の質問は: IntPtr ポインターを使用して、メモリ ブロックがまだ割り当てられているか、または既に割り当て解除されているかを確認する方法はありますか?