C 将字符数组转换为浮点

C 将字符数组转换为浮点,c,mpi,gmp,C,Mpi,Gmp,我使用GMP和MPI计算精度PI。目前,我已经在一个辅助进程中计算了PI,需要将其发送回farmer进程,为此,我将其转换为char数组 mp_exp_t exp; pi_str = mpf_get_str(pi_str, &exp, 10, (size_t)PRECISION, pi);

我使用GMP和MPI计算精度PI。目前,我已经在一个辅助进程中计算了PI,需要将其发送回farmer进程,为此,我将其转换为char数组

mp_exp_t exp; 
pi_str = mpf_get_str(pi_str,
                         &exp,
                         10,
                         (size_t)PRECISION,
                         pi);

char send_str[3026]= {0};
strcpy(send_str,pi_str);                      

MPI_Send(&send_str, len, MPI_CHAR, 0, 1, MPI_COMM_WORLD);
这很好,现在我收到字符数组,我需要执行其他计算,所以字符数组需要转换回浮点

char recv_str[3026] = {0};
    for(i=1; i<size ; i++)
    {
       printf("farmer**%d\n",size);
       MPI_Recv(&recv_str,3026, MPI_CHAR, i, 1,MPI_COMM_WORLD,  &status);
       printf("pi after send %s", recv_str);
       mpf_set_str(pi_ret, recv_str, 10);  
       gmp_printf("setting from string to float %.Ff\n", pi_ret, 20); 
charrecv_str[3026]={0};

对于(i=1;i您需要在为其赋值之前初始化
pi_ret


最简单的方法是使用,它同时初始化浮点数并从字符串中赋值。

您是否记得初始化
pi_ret
?不,我不知道,谢谢,它现在可以工作了。如果您作为答案发布,我会接受它