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部分显示“从int到double的无效转换”.
用任何浮点值(如5.0)替换rand()会显示“无法将double转换为double”.
(双)rand()或(double)5抛出类似的错误.
*当然在这个功能的早期阅读,我只是在这里切断它.
这可能有什么不对?
最佳答案 您引用的错误消息不完整.它在double之后缺少一个星号:*(arr i)的类型是double *而不是double,并且你不能将int或double转换为double *.
大概是你的意思
*(*arr + i) = rand();
要么
(*arr)[i] = rand();