您的位置:首页 > 编程语言 > C#

C# 内存分配与释放示例

2018-02-01 15:24 375 查看
原文地址:https://msdn.microsoft.com/zh-cn/library/ms146631.aspx

using System;
using System.Runtime.InteropServices;

class Example
{

static void Main()
{
// Create a managed array.
byte[] managedArray = { 1, 2, 3, 4 };

// Initialize unmanaged memory to hold the array.
int size = Marshal.SizeOf(managedArray[0]) * managedArray.Length;

IntPtr pnt = Marshal.AllocHGlobal(size);

try
{
// Copy the array to unmanaged memory.
Marshal.Copy(managedArray, 0, pnt, managedArray.Length);

// Copy the unmanaged array back to another managed array.

byte[] managedArray2 = new byte[managedArray.Length];

Marshal.Copy(pnt, managedArray2, 0, managedArray.Length);

Console.WriteLine("The array was copied to unmanaged memory and back.");

}
finally
{
// Free the unmanaged memory.
Marshal.FreeHGlobal(pnt);
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: