mpf_t
- это тип поплавка C, используемый GMP. Как сказано в документации , «объект mpf_t
должен быть инициализирован перед сохранением в нем первого значения». Так что вы должны сделать:
#include <iostream>
#include <cstdlib>
#include <gmpxx.h>
using namespace std;
int main(){
mpf_set_default_prec (128);
double a = 2., b = 3.;
mpf_t x, y, z;
mpf_init(x);
mpf_init(y);
mpf_init(z);
mpf_set_d(x, a);
mpf_set_d(y, b);
mpf_div(z, x, y);
gmp_printf("%.*Ff \n", 30, z);
mpf_clear (x);
mpf_clear (y);
mpf_clear (z);
return 0;
}
Однако, если вы используете C ++, вы можете рассмотреть возможность использования C ++ интерфейса библиотеки, что спасет вас от вызовов init и clear.