내가 함께 일부 부동 소수점 숫자를 추가하는 단순한 프로그램을 작성하여 C의 GMP 라이브러리를 사용하는 방법을 배울려고하지만, 런타임에 불평 :C에서 GMP 라이브러리를 사용하여 float 값을 할당하는 방법은 무엇입니까?
: 여기GNU MP: Cannot allocate memory (size=140735132293330)
Aborted (core dumped)
코드입니다
#include <gmp.h>
#include <stdio.h>
int main(){
mpf_set_default_prec(64);
mpf_t sum;
mpf_init(sum);
mpf_set_ui(sum,0);
unsigned int i = 0;
while (i < 4) {
mpf_add_ui(sum,sum,i);
i++;
}
mpf_out_str(stdout,10,sum);
printf ("\n");
mpf_clear(sum);
}
저는 GMP mpz 기능을 사용하여이 문제를 해결할 수 있었지만,이 문제를 해결하기 위해 플로트로 시도해 보았습니다. 설명서에 실제로 float 함수의 실제 예제가 표시되지 않으므로 값을 잘못 초기화하거나 지정하고 있습니다. , the documentation에서
size_t mpf_out_str (FILE *stream, int base, size_t n_digits, const mpf_t op)
// ^^^^^^^^^^^^^^^^
* 항상 * 엄격한 표준 준수 모드에서 컴파일러를 사용하고 사용 가능한 모든 경고를 활성화하십시오. 해결할 때까지 스택 오버플로에 게시하지 마십시오. 99 %의 프로그래밍 문제는 기존 도구로 완전히 자동 진단됩니다. –