C++ 使用GMP库的段冲突(';核心';生成)

C++ 使用GMP库的段冲突(';核心';生成),c++,gmp,C++,Gmp,你好吗?我正在努力学习如何在C++上使用多精度库GMP。这是我的代码: #包括 #包括 #包括 使用名称空间std; int main(){ 强积金(设定)(默认)(128);; 双a=2,b=3。; 强积金x,y,z; 强积金(x,a);; 强积金组d(y,b);; 强积金课(z、x、y); gmp_printf(“%.*Ff\n”,30,z); 强积金计划(x); 强积金计划(y); 强积金(z);; 返回0; } 这可以正确编译,但在执行过程中会返回段冲突(“生成核心”)。错误在哪里?m

你好吗?我正在努力学习如何在C++上使用多精度库GMP。这是我的代码:

#包括
#包括
#包括
使用名称空间std;
int main(){
强积金(设定)(默认)(128);;
双a=2,b=3。;
强积金x,y,z;
强积金(x,a);;
强积金组d(y,b);;
强积金课(z、x、y);
gmp_printf(“%.*Ff\n”,30,z);
强积金计划(x);
强积金计划(y);
强积金(z);;
返回0;
}

这可以正确编译,但在执行过程中会返回段冲突(“生成核心”)。错误在哪里?

mpf\u t是GMP使用的C浮点型,“在存储第一个值之前,必须初始化
mpf\t
对象”。所以你应该:

#包括
#包括
#包括
使用名称空间std;
int main(){
强积金(设定)(默认)(128);;
双a=2,b=3。;
强积金x,y,z;
强积金初始(x);
强积金初始(y);
强积金初始(z);
强积金(x,a);;
强积金组d(y,b);;
强积金课(z、x、y);
gmp_printf(“%.*Ff\n”,30,z);
强积金计划(x);
强积金计划(y);
强积金(z);;
返回0;
}

但是,如果您使用C++,您可以考虑使用库的内容,这将节省您的init和清除调用。