Копирование в неуправляемой памяти - C#
Формулировка задачи:
Всем привет.
Имеется указатель IntPtr на блок неуправляемой памяти. Мне необходимо скопировать в него строку string со смещением
Делаю так:
Все вроде работает, но после выхода из метода вываливается ошибка работы с памятью. Не во всех запусках , а иногда.
Собственно, вопрос - можно ли передавать такие смещения в функцию Copy, и есть ли альтернатива?
Можно ли копировать из неуправляемой памяти в неуправляемую ? Просто из одного куска в другой со смещением или без
string cmdline =«qwerty»; int offset =20; int bufSize =offset+cmdline.Length+1; IntPtr pbuf=Marshal.AllocHGlobal (bufSize ); IntPtr Ofbuf= IntPtr.Add(pbuf, offset); Marshal.Copy(cmdline.ToCharArray(),0,Obuf, cmdline.Length); Marshal.FreeHGlobal (pbuf);
Решение задачи: «Копирование в неуправляемой памяти»
textual
Листинг программы
int bufSize =offset + cmdline.Length*2 /* !!!! */ + 1;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д