首先,我分配内存并获取指针:
IntPtr pointer = Marshal.AllocHGlobal(size);
然后,我尝试释放指针指向的内存:
Marshal.FreeHGlobal(pointer);
但在我的应用程序中,它有时会引发一个致命的未知异常,仅此解释:“内存片段已损坏”。我想这是因为我试图通过释放另一个指针来释放一个指向已经释放的内存块的指针......
我的问题是:使用 IntPtr 指针,有没有办法检查内存块是否仍然被分配或已经被释放?
首先,我分配内存并获取指针:
IntPtr pointer = Marshal.AllocHGlobal(size);
然后,我尝试释放指针指向的内存:
Marshal.FreeHGlobal(pointer);
但在我的应用程序中,它有时会引发一个致命的未知异常,仅此解释:“内存片段已损坏”。我想这是因为我试图通过释放另一个指针来释放一个指向已经释放的内存块的指针......
我的问题是:使用 IntPtr 指针,有没有办法检查内存块是否仍然被分配或已经被释放?