public unsafe void TryDereferenceRawPointer() { int number = 1; int * numberPtr = &number; int **numberPtrPtr = &numberPtr; var refPointer = new Reloaded.Memory.Pointers.RefPointer <int>((int *)numberPtrPtr, 2); for (int x = 0; x < 100; x++) { bool success = refPointer.TryDereference(out int *value); * value = x; Assert.True(success); Assert.Equal(number, *value); } }
public unsafe void TryDereferenceAlternateSyntax() { int number = 1; int * numberPtr = &number; int **numberPtrPtr = &numberPtr; var refPointer = new Reloaded.Memory.Pointers.RefPointer <int>((int *)numberPtrPtr, 2); for (int x = 0; x < 100; x++) { number = x; int newNumber = 0; bool success = refPointer.TryDereference(ref newNumber); Assert.True(success); Assert.Equal(number, newNumber); } }