Marshal.Copy()

Рейтинг: 0Ответов: 1Опубликовано: 12.06.2011

Копирует данные из управляемого массива в указатель неуправляемой памяти или из указателя неуправляемой памяти в управляемый массив. Т.е. например из IntPtr в int, а также можно из int в IntPtr.

float[] fin;
IntPtr pin;

...

Marshal.Copy(fin,0,pin,n*2);

Как я понял в данном случае происходит копирование данных из управляемого массива в указатель неуправляемой памяти. Почему в качестве параметров "0" и "n*2"? Как осуществить копирование данных из указателя неуправляемой памяти в управляемый массив?

И какой это язык? найти не смог

Ответы

▲ 2Принят

IntPtr - явно указывает на C# или C++, но не на C. Я б сказал, что скорее всего C#. Из-за float[].

Касательно ф-ции - смотрим MSDN. Ясно написано, что 0 - это индекс начального элемента, с которого начинать копирование. А n*2 - длина копируемой области.