Bu programda neyi yanlış yaptığımı anlayamıyorum. Bir dizideki en büyük değerin adresini yazdırmaya çalışıyorum ama dizideki ilk değerin adresini almaya devam ediyorum. Problemin for döngüsünde olduğundan eminim ama tam olarak nerede olduğunu anlayamıyorum. İşte kod: Buradaİşaretçiler ve İşlev Çağrısı
#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;
}
İşleviniz neden 'dizi kullanmıyorsanız ... bir işaretçi döndürüyor [i]' Altsimgeleme, daha kolay ilk anlamak yapmak ve bırakmak için '*' dan işlev bildiriminin dönüş türü. – t0mm13b
Sorun, –
işlev bildiriminde işaretçi aritmetiğini ve * işlevini kullanmamı gerektirir. Tür belirteciniz '% d', tanımlanmamış davranışları çağırır. Bir işaretçi basmak için doğru olanı kullanın! – Olaf