학교 프로젝트의 경우 많은 수를 포함하는 몇 가지 계산을해야하므로 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에서 허용됩니까?
다음과 같이 코드를 변경해야합니다.
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]);
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다