Я не могу понять, что я делаю неправильно с этой программой. Im пытается распечатать адрес наибольшего значения в массиве, но я продолжаю получать адрес первого значения в массиве. Я уверен, что проблема в цикле for, но я не могу понять, где именно. Heres код:Указатели и функциональные вызовы
#include <stdio.h>
int *Largest(int *array, int size);
int main (void)
{
int* Z;
int A[10] = {3,53,52,6,2,8,3,6454,232,88};
Z = Largest(A, 10);
printf("The address of the largest Value is: %d", Z);
}
int* Largest(int *array, int size)
{
int i;
for (i=0; i++; i<size)
{
if (*(array+i) > *array)
*array = *(array+i);
}
return array;
}
Ваша функция возвращает указатель ... Почему вы не используете 'массив [я]' индексирование, чтобы сделать его легче понять первое, и опускать '*' из возвращаемый тип объявления функции. – t0mm13b
проблема требует, чтобы я использовал арифметику указателя и * в объявлении функции –
Спецификатор типа '% d' вызывает неопределенное поведение. Используйте правильный, чтобы напечатать указатель! – Olaf