У меня возникли проблемы с кодом c из библиотеки, которую я использую с Android NDK.Библиотека Android NDK C вызывает ошибку seg
Он работает на эмуляторе, но не на реальном устройстве. Это дает мне «libc - Fatal signal 11» (SIGSEGV)
Я проследил проблему до фрагмента кода в библиотеке, но мне трудно понять, что делает вторая строка.
Вот код:
int lookup_mpz(mpz_t z, const char *(*tab)(const char *), const char *key) {
const char *data= tab(key); //--> Causes SEGV
if (!data) {
pbc_error("missing param: `%s'", key);
return 1;
}
mpz_set_str(z, tab(key), 0);
return 0;
}
Почему бы не проверить 'tab', так как это указатель? Я думаю, в случае, когда NULL перешел на 'tab', это вызовет SIGSEGV в его реализации, а не в' lookup_mpz' –
@AndreyErmakov, хороший момент. Обновлено. – hmjd
Спасибо, что помогает. Я просто не могу найти эту вкладку функций() в любом месте, это может быть проблемой. Но это все еще не объясняет, почему код работает на эмуляторе, но не на реальном устройстве. – Phaestion