参数的不兼容类型

时间:2013-11-24 22:18:21

标签: arrays incompatibletypeerror

我真的不明白错误:

:58:错误:'sumData'

的参数1的类型不兼容

:14:注意:预期'double *'但参数类型为'double'

以下是错误报告所引用的代码:

:14: double sumData(double data[],int size);

int main(){
     . . . 

     int size;
     double sData;

     . . .

     double data[size];

     . . . .

:58: sData=sumData(data[size],size);

     . . . 

return 0;
}

1 个答案:

答案 0 :(得分:0)

假设这是In C ++(或C?)。数组通过引用传递。数组名称是指向第一个内存位置的指针。在你的情况下,你需要传递数据而不是数据[size],因为后者最终传递data [size]的值(由于你的数组长度是大小但是数组是通过索引访问的,因此应该超出范围(所以在技术上)你会达到规模-1)。

以下是修复它所需要做的事情:

sData=sumData(data,size); // when you pass data, you're passing the address of the first memory location that data points to.