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
当然先前已在此函数中阅读,我只是将其剪掉了。
这里有什么不妥?
答案 0 :(得分:2)
您引用的错误消息不完整。它在double
之后缺少星号:*(arr + i)
的类型为double*
而不是double
,您无法转换int
或double
到double*
。
大概是指你的意思
*(*arr + i) = rand();
或
(*arr)[i] = rand();
答案 1 :(得分:0)
*(arr + i) = rand();
- &gt; (*arr)[i] = rand();