c++ - 错误 : invalid type argument of unary '*'

标签 c++ arrays pointers

我不明白这些错误,谁能解释一下?

错误:一元“”的无效类型参数(具有“double”) 错误:一元“”的无效类型参数(具有“double”) 错误:一元“*”的无效类型参数(有“double”)

    double getMedian(double *array, int *hours){
    if (*hours <= 0) return 0;
    if (*hours % 2) return (float)*array[(*hours + 1) / 2];
    else{int pos = *hours / 2;
    return (float)(*array[pos] + *array[pos + 1]) / 2;}}

最佳答案

您已经使用 [] 运算符取消引用 array。你想要的是:

double getMedian(double *array, int *hours){
if (*hours <= 0) return 0;
if (*hours % 2) return (float)array[(*hours + 1) / 2];
else{int pos = *hours / 2;
return (float)(array[pos] + array[pos + 1]) / 2;}}

请注意,x[y]*(x + (y)) 的简写。在您的代码中,您基本上具有 **array 的等价物。

关于c++ - 错误 : invalid type argument of unary '*' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22902985/

相关文章:

c++ - C++ 中的内存泄漏(通过 new+delete)

c++ - 需要 Scopeguard 生命周期/模式

c++ - 有人在现实生活中使用模板元编程吗?

c++ - 将 C++ 类私有(private)变量转换为公共(public)变量

javascript - 如何更改数组内的多个对象?

c++ - 成功分配的数组太大时访问指针时出错

c++ - 在 C++ 中比较数组

c++ - 如何声明指针成员禁止删除它

c++ - 创建新对象时转换错误

C++ : memory management