Regarding passing arrays to functions and then manipulating the array contents (Array.Reverse) and then using pointers I extract the values from the array. But before jumping into the function, here is what I do;

```
byte[] arrayA = OriginalArray
byte[] arrayB = arrayA;

manipulate(OriginalArray);

```

And the function abstracted, looks like this

```
manipulateArray(byte[] OriginalArray) // This is unsafe
{
   // Unsafe code that keeps a pointer to OriginalArray
  // Array reverse 
  // Value extraction via pointer
}

```

After doing so, to my surprise what I am getting is that arrayB now "has" its values manipulated as if I had passed it to the function! Unless I missed something, I am pretty sure that I have not done something wrong. I made sure that the function is called after the arrayA and arrayB assignments.

Need guidance on this.
Thanks