私はこのプログラムで間違っていることを理解できません。私は配列の中で最大の値のアドレスを出力しようとしていますが、配列の最初の値のアドレスを取得し続けます。私はかなり問題が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;
}
あなたの関数はポインタを返しています...なぜあなたは 'array [i]'添え字を使用していないのですか?関数宣言の戻り値の型。 – t0mm13b
問題は私にポインタ算術と関数宣言の*を使用する必要があります –
あなたの型指定子 '%d'は未定義の動作を呼び出します。正しいものを使ってポインタを印刷してください! – Olaf