2

私はNDKと学習に不慣れです。

jbyteJavaコードからネイティブメソッドを呼び出すことができましたが、2つの配列を比較する方法がわかりません

これが私が持っているものです:

 jbyte bytes1[] = {48, -126, 1,4};
 jbyte bytes2[] = {48, -126, 1,4};

 jclass cls = (*env)->GetObjectClass(env, bytes1);
 jmethodID   mid = (*env)->GetMethodID(env, cls, "equals", "([B)Z");
 jboolean isEqual = (*env)->CallBooleanMethod(env, bytes1, mid, bytes2);

上記のコードが間違っていることは知っていますが、バイト配列を比較する正しい方法はありますか

4

1 に答える 1

1

2つのjbyte配列を比較する必要がある場合は、memcmpを使用してください。

#include <string.h>
int memcmp(const void *s1, const void *s2, size_t n);

あなたの例では、

jboolean isEqual = (memcmp(bytes1, bytes2, 4) == 0);
于 2012-11-08T20:23:55.220 に答える