>实际上我正在处理指针 c# 应用程序。我已经创建了这个结构。
public unsafe struct Aris
{
public Aris* sig;
public int pes;
}
unsafe class Nodo
{
// Here I am trying to create a new instance
void insertAris(Aris *start)
{
Aris* newAris;
newAris->sig = null;
}
}
我无法创建新的 Aris 实例,我也尝试了Aris * newAris = new newAris();
,但这也失败了。
您的代码看起来像一个C++
移植到使用指针作为引用的结构C#
。.NET
你应该避免以这种方式使用指针(毕竟,它是一个使用垃圾收集器的框架,指针必须固定到位(,你应该改用引用类型(类(:
public class Aris
{
public Aris sig;
public int pes;
}
public class Nodo
{
public void InsertAris(Aris *start)
{
Aris newAris = new Aris { sig = null, pes = 0 };
// ...
}
}
解决方案:
要正确定义结构,您必须这样做。
ExampleStruct es = new ExampleStruct{ exampleInt = 1, exampleInt2 = 2 };
至于你的方法,我也注意到你正在创建一个未定义的var Aris* sig
,当我认为你打算做Aris* sig = start
时。