4
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我想用随机或自定义双数填充数组的参数。但是,此代码无法编译,它显示"invalid conversion from int to double"在 else 部分。

替换rand()为 5.0 之类的任何浮点值会显示“无法将双精度转换为双精度”。

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

*n当然是前面读到的这个函数,我这里就删掉了。

这里有什么问题?

4

2 回答 2

1

您引用的错误消息不完整。它在 之后缺少一个星号double:类型*(arr + i)double*而不是double,并且您不能将int或转换doubledouble*

大概你的意思是

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

或者

        (*arr)[i] = rand();
于 2013-04-06T15:53:22.993 回答
0

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

于 2013-04-06T15:56:21.087 回答