我想使用sun.misc.Unsafe.allocateMemory()分配内存并在本地代码中访问它。在本地代码中使用由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
不工作*如何*?你也需要显示本地代码。 – 2012-02-17 05:37:31
好吧,我已经解释了'如何',甚至现在附上图像 – pdeva 2012-02-17 05:44:48