Am I doing this right?
I get a pointer to a native array and need to copy to a managed array. Use memcpy() with a pin_ptr.
unsigned char* pArray;
uns
You are doing it almost right:
pin_ptr<Byte> pinPtrArray = &ManagedClass.ByteArray[ManagedClass.ByeArray->GetLowerBound(0)];
Marshal::Copy is not safe and not as fast. Always use pinned pointers in managed C++.
Edit: If you want to, you can check the length to make sure the memcpy won't exceed the bounds first, e.g.:
if (arrayCount > ManagedClass.ByteArray.Length)
(throw Out of bounds copy exception)
That works, but isn't safe. You'll blow the garbage collected heap to smithereens when you get arrayCount wrong. Very hard to diagnose.
Marshal::Copy() is safe and just as fast.