Я пытаюсь выделить память с помощью sun.misc.Unsafe.allocateMemory () и получить доступ к ней в собственном коде.
однако, похоже, что длинное значение, возвращаемое allocateMemory, не совсем работает как правильный адрес в коде C.
Unsafe unsafe = getUnsafe();
long address = unsafe.allocateMemory(64);
for (int i = 0; i < 64; i += 8)
unsafe.putByte(memory + i, (byte) 0xFF);
nativeMethod(address);
Однако в моем родном коде, когда я пытаюсь получить доступ к «адресу» в качестве указателя, он не работает: (
Обновление: Я приложил изображение, показывающее проблему.
Я передал «адрес» нативному коду, однако, проверка памяти в этом месте не показывает значения 0xFF, которые я там ввел.
Изображение: http://i.stack.imgur.com/KoIYG.png