gpt4 book ai didi

C# 不安全指针字段

转载 作者:行者123 更新时间:2023-12-02 01:16:32 25 4
gpt4 key购买 nike

这会崩溃吗?它编译得很好,但根据读数,我不确定它是否保证 _ptRef 将始终指向构造函数中引用的结构。

我想“break”的意思是...GC 会移动指针 (_ptRef) 指向的结构吗?

public unsafe class CPointType0
{
private PointType0* _ptRef = null;

public CPointType0(ref PointType0 spt)
{
fixed (PointType0 * pt = &spt)
{
_ptRef = pt;
}
}

...a bunch of property accessors to fields of _ptRef (accessed as return _ptRef->Thing) }

场景是

-PointType0 是一个结构。

-数据结构中内存中的数百万个 PointType0。这些曾经是引用类型,但内存开销太大了。

-只有当搜索操作找到相关的PointType0时才返回一个List,这个List被传递和操作了很多。

最佳答案

这不安全。

代码离开 fixed block 后,垃圾收集器可以自由地再次移动东西。你想在这里完成什么?您可能想要使用列表中某项的索引而不是指针吗?

关于C# 不安全指针字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10747983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com