Zdefiniowana zmienna SIZE jest różna

0

Dlaczego zdefiniowana zmienna SIZE jest inna w funkcji average a inna w funkcji main ? prawidłowa wartość powinna wyjsc 6. w main jest dobrze ale w funkcji jest problem i pokazuje 2. Prosze o pomoc. Dopiero się ucze.

#include <stdio.h>
#define  SIZE (sizeof(number)/sizeof(int))

int number[] = {5,65,84,25,644,2};

int average(int *number)
{
	printf("size = %ld\n",SIZE);
	int sum=0;
	for(int i=0;i<=SIZE ;i++)
	{
	sum += number[i];
	}
	return sum/SIZE;
}

int main()
{
printf("average : %d\n",average(number));
printf("number of elements: %ld\n", SIZE);


return 0;
}
3

W funkcji masz wskaźnik, a sizeof podaje tylko rozmiar tego wskaźnika. Przekazuj wielkość tablicy jako osobny parametr.

1 użytkowników online, w tym zalogowanych: 0, gości: 1