|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - Вопрос по работе с памятью |
|
.NET - Вопрос по работе с памятью
|
Новый участник Сообщения: 21 |
Нужно передать в качестве параметра указатель на массив. Я так понимаю, есть несколько способов это сделать.
1. С помощью указателя char array =... //задаем массив SizeIn = sizeof(char) * array.Length; IntPtr Out= IntPtr.Zero; int SizeOut; unsafe { fixed (char* p = &array[0]) { IntPtr In= new IntPtr(p); int result = WrappedOrdercl.WrappedOrdercl.ExecQuery(SizeIn, In, out SizeOut, out Out); } } //// полученный результат обрабатывается следующим образом char* newp = (char*)Out.ToPointer(); for (int i = 0; i < SizeOut/sizeof(char); i++) { newarray[i] = *newp; ++newp; } SizeIn = sizeof(char) * array.Length; IntPtr In= Marshal.AllocHGlobal(SizeIn); IntPtr Out= IntPtr.Zero; int SizeOut; Marshal.Copy(array, 0, In, array.Length); int result = WrappedOrdercl.WrappedOrdercl.ExecQuery(SizeIn, In, out SizeOut, out Out); //// полученный результат обрабатывается следующим образом Marshal.Copy(Out, Answ, 0, SizeOut/ sizeof(char)); Marshal.FreeHGlobal(In); Marshal.FreeHGlobal(Out); Посоветуйте, какой подход когда лучше использовать и какие могут быть подводные камни. Например, во втором случае выделенная память в куче совобождается посредством FreeHGlobal, а при использовании указателя какие-либо действия по очистке нужны? Указатель, как я понимаю, тоже в неуправляемой памяти создается. Спасибо. |
|
Отправлено: 16:51, 11-12-2012 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать navab, массив - это объект, а объект и так передаётся по ссылке
|
Отправлено: 10:46, 14-12-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
HDD - Вопрос по работе в DMDE | van_De_Star | Накопители (SSD, HDD, USB Flash) | 2 | 06-09-2012 17:02 | |
Вопрос по работе вентилятора | Kamuflych | Разгон, охлаждение и моддинг | 3 | 10-11-2011 15:20 | |
Вопрос по работе форумов, индексы | The Dream | Флейм | 2 | 06-08-2011 15:52 | |
Разное - [решено] вопрос по работе HDD | sasa74 | Microsoft Windows Vista | 4 | 26-12-2009 20:30 | |
Вопрос по работе JS и VBS скриптов | hasherfrog | Microsoft Windows Vista | 0 | 19-10-2006 12:39 |
|