C#Marshal.AllocHGlobal与Marshal.FreeHGlobal

命名空间: System.Runtime.InteropServices

程序集: mscorlib(位于 mscorlib.dll)

Marshal.AllocHGlobal

通过使用指定的字节数,从进程的非托管内存中分配内存。

Marshal.FreeHGlobal

释放由Marshal.AllocHGlobal分配的内存。

示例代码:

IntPtr m_AlgProcessPtr = IntPtr.Zero;
IntPtr m_TestData = IntPtr.Zero;

try
{                
   m_AlgProcessPtr = Marshal.AllocHGlobal(512 * 512 * 512 * 2);
   m_TestData=值;
   MemoryService.Memerycopy(m_AlgProcessPtr, m_TestData, m_TempSize);
}
catch (Exception ex)
{
   //异常信息
}
finally
{
    if (m_AlgProcessPtr != null)
      {
         Marshal.FreeHGlobal(m_AlgProcessPtr);
      }
          if (m_TestData != null)
      {
         Marshal.FreeHGlobal(m_TestData);
      }
}

你可能感兴趣的:(C#,c#)