传递'sum'的参数1使得指针来自整数而没有强制转换

时间:2014-01-24 04:28:56

标签: c

我有以下功能:

int sum(int *a, int size) {

    int sum;
    int i;
    for(i = 0; i < size; i++) {
            sum += a[i];
    }
    return sum;  /* Change the return value */
}

double average(int *a, int size) {
    int summation = sum(*a, size);
    double result = (double)  summation/size;
     return result; /* Change the return value */
}

当我编译时,我得到错误:传递参数使得指针来自整数而没有强制转换

我应该改变什么?

2 个答案:

答案 0 :(得分:1)

average函数中,不要将*a传递给sum,而只传递a,因为它已经是指针。

答案 1 :(得分:0)

由于a是一个数组,只需传递一个将给出数组的基址,所以只需在参数中传递一个。