Мне дали задачу, в которой я должен написать функцию, которая принимает два параметра (оба являются указателями, первый указывает на начало массива, а второй указывает на место в памяти после последнегоэлемент массива)
Функция должна вызываться из первого элемента массива в середину, а затем из среднего элемента в конец в конце, а затем функция должна возвращатьзначение этих двух, которое больше.
double max_element(double *p1, double *p2)
{
double from_first_to_middle = max_element(p1, (p1 + p2) / 2 + p1);
double from_middle_to_last = max_element((p1 + p2) / 2 + p1, p2);
if(from_first_to_middle > from_middle_to_last)
{
return from_first_to_middle;
}
else
{
return from_middle_to_last;
}
}
Но когда я пытаюсь запустить этот код, он выдает ошибку
error: invalid operands to binary + (have ‘double *’ and ‘double *’)
Итак, я подумал, что я должен разыменовать эти указателипоскольку я не могу выполнить эти операции с адресами, на которые они указывают, но это все равно не работает.
Кто-нибудь может помочь?
Спасибо!