Я хочу получить данные из указателя IntPtr в массив байтов. Для этого я могу использовать следующий код:
IntPtr intPtr = GetBuff();
byte[] b = new byte[length];
Marshal.Copy(intPtr, b, 0, length);
Но приведенный выше код принудительно выполняет операцию копирования из IntPtr в массив байтов. Это не очень хорошее решение, когда рассматриваемые данные велики.
Есть ли способ привести IntPtr к массиву байтов? Например, будет работать следующее:
byte[] b = (byte[])intPtr
Это устранит необходимость в операции копирования.
Также: как мы можем определить длину данных, на которые указывает IntPtr?