在c#中从内存中释放指针
本文关键字:释放 指针 内存 | 更新日期: 2023-09-27 17:58:25
我正在使用fixed{}
短语处理C#中的指针。
我把代码放在固定语句的方括号里,想知道垃圾回收是否会处理固定语句之后的指针释放
fixed{int * p=&x}
{
// i work with x.
}
如果没有,我该如何释放它?
指针指向托管对象(x
),因此无需担心:指针不需要释放(或者更确切地说,它在fixed
块末尾超出了范围),指针对象x
本身由GC管理。
C中的一些类似代码会让事情变得更清楚:
{
int x; // allocates space for x
{
int *p=&x; // does not allocate for something p points to (only for p)
// ...
} // leaves inner scope, p vanishes, *p is not deallocated
// ...
} // leaves outer scope, x is deallocated
C#代码的作用基本相同。