Ссылаясь на эту тему: Доступ к адресу памяти в c # , я пытаюсь понять, как обратиться к ячейке памяти и извлечь данные, зная ее шестнадцатеричный сегмент: смещение. Кроме того, я считаю, что размер может быть переменным. Буду признателен за любые советы по продолжению этого.
Ну, если хочешь неприятностей ...
int bufSize = 12; IntPtr ptr = (IntPtr) (0xffff *16U + 5); byte[] data = new byte[bufSize]; Marshal.Copy(ptr, data, 0, bufSize);
Управляемые приложения работают на платформах с линейным адресным пространством.Сегмента нет, смещения нет.Существует только адрес, и вы можете читать и писать по любому адресу через Marshal.Copy.
Marshal.Copy