2013-11-24 3 views
0

Я не очень понимаю ошибки:несовместимого типа для аргумента

: 58: ошибка: несовместимый типа для аргумента 1 «» sumData

: 14: Примечание: ожидаемый «двойные *», но аргумент это типа «двойной»

Вот код, что отчеты об ошибках, обратитесь к: (? или C)

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

int main(){ 
    . . . 

    int size; 
    double sData; 

    . . . 

    double data[size]; 

    . . . . 

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

    . . . 

return 0; 
} 

ответ

0

Если предположить, что это в 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. 
+0

Я в C. И спасибо! – leovic

Смежные вопросы