无法将double转换为double

时间:2013-04-06 15:50:24

标签: c

void load(int *n, double *x, double **arr, bool randomize)
{
    *arr = (double*)malloc((*n + 1) * sizeof(double));
    srand(time(NULL));
    for(int i = 0; i <= *n; i++)
    {
        if(! randomize)
        {   
            scanf("%lf", *arr + i);
        }
        else
        {
            *(arr + i) = rand();
        }
    }
}

基于randomize参数,我想用随机或自定义双数字填充数组。但是,此代码无法编译,它会在else部分显示"invalid conversion from int to double"

用5.0之类的任何浮动值替换rand()会显示“无法将double转换为double”。

(double) rand()(double) 5会抛出类似的错误。

*n当然先前已在此函数中阅读,我只是将其剪掉了。

这里有什么不妥?

2 个答案:

答案 0 :(得分:2)

您引用的错误消息不完整。它在double之后缺少星号:*(arr + i)的类型为double*而不是double,您无法转换intdoubledouble*

大概是指你的意思

        *(*arr + i) = rand();

        (*arr)[i] = rand();

答案 1 :(得分:0)

*(arr + i) = rand(); - &gt; (*arr)[i] = rand();