Ich habe einen Strukturzeiger erstellt, aber jeder Aufruf für den neuen Knoten gibt die gleiche Adresse zurück. Aber ich erwartete, dass für jeden Aufruf des neuen Knotens unterschiedliche Adressen zurückgegeben werden. Kann mir bitte jemand helfen?gleiche Adresse in C# struct Zeiger zurückgegeben
public unsafe struct Node
{
public int Data;
}
class TestPointer
{
public unsafe Node* getNode(int i)
{
Node n = new Node();
n.Data = i;
Node* ptr = &n;
return ptr;
}
public unsafe static void Main(String[] args)
{
TestPointer test = new TestPointer();
Node* ptr1 = test.getNode(1);
Node* ptr2 = test.getNode(2);
if (ptr1->Data == ptr2->Data)
{
throw new Exception("Why?");
}
}
}
Dieser Code ist fast das klassische Beispiel für dangling Zeiger. –
Aber der "Neue" ließ mich auch noch eine Weile täuschen, bevor ich mir den IL-Code ansah. – TToni