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);
}
}
}
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);
}
}
}
相关文章推荐
- C#中应用程序的垃圾回收器管理和内存的分配与释放
- 使用二级指针分配和释放内存示例 malloc(), free()
- C#中应用程序的垃圾回收器管理和内存的分配与释放
- delphi 指针的内存分配和释放
- Windows 下主程序与动态库(*.dll)释放对方分配的内存操作要点
- C与C++动态分配,释放内存的区别
- 为一个二维数组动态分配&释放内存
- DLL中用malloc分配了一块内存,但是在exe程序中释放引发的错误可能原因
- C#实现动态分配IP和释放IP
- 频繁分配释放内存导致的性能问题的分析
- 晓说智能指针shared_ptr为何可以实现跨模块分配和释放内存
- ios中内存的分配与释放
- C++ STL中的vector的内存分配与释放
- 【问题】c/c++函数内部动态分配的内存,函数执行完毕会释放吗?
- linux内存模型之buddy(伙伴)系统二分配与释放
- STL vector (一)——扩容原理与内存分配与释放
- 在一个模块中分配的内存在另外一个模块释放
- C++ STL中的vector的内存分配与释放
- C# 释放内存的办法
- C与C++中动态分配与释放内存的区别