在float数组上使用mpf_set_ui会停止输出(GMP c ++)

时间:2014-10-25 09:05:46

标签: c++ arrays gmp

对于一个学校项目,我必须做一些涉及大数字的计算,这就是我选择使用GMP的原因。在我的主程序遇到奇怪的错误后,我开始尝试另一个。以下代码显示出现了什么问题:

mpf_set_default_prec(512);
mpf_t t[5];
mpf_init(t[5]);
cout << "This does appear." << endl;
mpf_set_ui(t[4],9);
cout << mpf_get_d(t[4]) << endl;
cout << "This does not, neither is the number 9 printed." << endl;
mpf_clear(t[5]);

所以输出在mpf_set_ui之后停止。如果我在没有数组的情况下尝试这个,那么t [5]和t [4]变为t,一切都按预期工作。我究竟做错了什么? GMP中是否允许使用数组?

1 个答案:

答案 0 :(得分:2)

您应该按照以下方式更改代码

mpf_t t[5];
for(int i = 0; i < 5; ++i) {
    mpf_init(t[i]);
}

mpf_set_ui(t[4],9);
cout << mpf_get_d(t[4]) << endl;

for(int i = 0; i < 5; ++i) {
    mpf_clear(t[i]);
}