我想在Android程序中使用memset
。
我尝试使用NDK在C中编码,然后在我的JAVA Android程序中使用库。
memset
的输入是*ptr
。我想发送内存地址(如0x8134
)进行编程,然后使用memset
更改它。我可以发送这到我的程序?
答案 0 :(得分:1)
首先,如你所知,Java没有指针的概念,因此无法使用指针(需要使用memset)来真正分配/使用内存区域。
也就是说,可以使用ByteBuffer.allocateDirect
来获得直接字节缓冲区,其地址可以在JNI的本机端使用,以进行直接内存操作。此外,您可以直接在本机代码中分配内存,并将其作为ByteBuffer传递回Java代码。这是最接近C / C ++类型的内存访问/操作。
更多细节:
http://onjava.com/pub/a/onjava/2002/10/02/javanio.html?page=2
http://docs.oracle.com/javase/6/docs/api/java/nio/ByteBuffer.html