Я хочу использовать memset
в программе Android. Я пытаюсь NDK кодировать в C, а затем использовать библиотеку в моей программе JAVA Android.
вход memset
- это *ptr
.i хотите отправить адрес памяти (например, 0x8134
) для программирования, а затем использовать memset
для его изменения. Как я могу отправить это в свою программу?
Во-первых, как вы знаете, Java не имеет понятия указателей и, следовательно, не может реально выделять/использовать область памяти с помощью указателей (на которых необходимо использовать memset).
Тем не менее, можно использовать ByteBuffer.allocateDirect
для получения прямого байтового буфера, адрес которого может использоваться на стороне JNI для выполнения операций с прямой памятью. Кроме того, вы можете напрямую выделить память в собственном коде и передать ее обратно в код Java как ByteBuffer. Это ближе всего к доступу/манипуляции с памятью типа 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