Wskaźniki do struktury w funkcji

0

Witam pisząc program napotkałem pewien problem:
Otóż mam struktury:

struct person_inf   {
	char name[30];
	char surname[40];
	int age;        
};

struct basketballer   {
	struct person_inf player_inf;
	int throws_2;
	int hits_2;
	int assist;
	int faul;  
	float efficienty;
}; 

Chce napisać która jako argument przyjmuje wskaźnik do tablicy struktur a następnie wyzeruje wartości.
A wygląda ona tak:

void easer_players (struct basketballer (* player) [] , int n)
{
	for(int i = 1 ; i <= n ; i++,player++)
	{
		player->player_inf.name = player->player_inf.surname = ' ';
		player->player_inf.age = player->throws_2 = player->hits_2 = player->assist = player->faul = player->efficienty = 0;
		
	}
} 

Jednak MS Visual wywala mi błędy podczas kompilacji że kompilator nie zna rozmiaru struktury przy inkrementacji wskaźnika

'basketballer (*)[]' : unknown size

Dodatkowo mam coś nie tak przy przypisywaniu wartości do pól struktury:

: left of '.player_inf' must have class/struct/union
type is 'basketballer []'

Z góry dziękuje Wam za pomoc i pozdrawiam.

1

Nie mogę przetestować z powodu braku kompilatora chwilowo, ale:

void easer_players (struct basketballer *player, int n)
{
    memset(player, 0, sizeof(basketballer) * n);
} 
1

Tablice przekazywane są do funkcji automatycznie przez wskaźnik, i nie trzeba kombinować z wyciąganiem wskaźnika do nich.

void easer_players (struct basketballer* player , int n)

Ponadto "zerowanie" name'a i surname'a w Twoim kodzie jest zupełną abstrakcją. Przypisanie ' ' nie przejdzie z racji niezgodności typów.
Już prędzej " " miałoby sens, ale tylko gdyby w strukturze znajdowało się char*, a nie tablica.
W tej sytuacji strcpy albo memset.

0

Dziękuje za pomoc ;)

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