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