Я не понимаю, как я могу получить переменную типа mpz_t в char *.Я перепробовал много функций, но мой char * остается пустым.
Я могу вывести свою переменную B:
mpz_t B; gmp_printf("B: %Zx\n", B);
Но как преобразовать эту переменную B в char *?
Похоже, mybuffer = mpz_get_str(NULL, /*base*/10, B); делает то, что вы хотите.(Он распределяет возвращаемый буфер. Вы можете записать его в существующий буфер, если хотите - см. Руководство для расчета требуемого размера.)
mybuffer = mpz_get_str(NULL, /*base*/10, B);
gmp_sprintf(array, "%Zx", B);