/ / Wie zwei jbyte Arrays in Android NDK zu vergleichen - Android, Arrays, Android-ndk, jni, Byte

Wie man zwei Jbyte-Arrays in Android NDK vergleicht - Android, Arrays, Android-ndk, Jni, Byte

Ich bin neu in NDK und lerne.

Ich habe es geschafft, die native Methode aus Java-Code aufzurufen, weiß aber nicht, wie ich zwei vergleichen kann jbyte Arrays

Hier ist was ich habe:

 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);

Ich weiß oben Code ist falsch, aber gibt es einen richtigen Weg zum Vergleich der Byte-Arrays

Antworten:

1 für die Antwort № 1

Verwenden Sie memcmp, wenn Sie zwei Jbyte-Arrays vergleichen müssen.

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

In Ihrem Beispiel

jboolean isEqual = (memcmp(bytes1, bytes2, 4) == 0);