Tablica struktur jako argument funkcji

0

Witam!
Piszę w c. Mam przykładowo taką strukturę:

 struct data {
    char imie[ 50 ];
    int nr_telefonu[ 9 ];
};

Deklaruje tablicę struktur:

struct data tab[ 100 ]; 

Teraz chcę stworzyć funkcję, która będzie wypełniała tą tablicę struktur dla n osób. Jak to zrobić?

2
void func(struct data *tab, size_t n){
    //...
}

Przykład:

#include <stdio.h>

struct data {
	int foo;
};

void func(struct data *table, size_t n){
	while(n --> 0){
		table[n].foo = n;
	}
}

#define SIZE 20
int main(void){
	struct data table[SIZE];
	func(table, SIZE);
	
	size_t i = 0;
	for(; i < SIZE; ++i)
		printf("%d ", table[i].foo);
	return 0;
}

http://ideone.com/b5ZjgW

0

Dzięki. Jeszcze mam pytanie, a mianowicie chodzi mi o to, jak uzupełnić tablicę znakową(char imie[50]) w tej funkcji?

2
Chivolta napisał(a):

... jak uzupełnić tablicę znakową ...
zdefiniuj uzupełnić

0
_13th_Dragon napisał(a):
Chivolta napisał(a):

... jak uzupełnić tablicę znakową ...
zdefiniuj uzupełnić

Tzn w tej funkcji, zapytać się użytkownika "Podaj imie" i zapisać to imię do tablicy struktur.

2
scanf("%49s",table[n].imie);
0

Tylko jest taki sposób? Nie ma innego? Pierwszy raz coś takiego widzę dlatego pytam, ale oczywiście działa.

2

Jest jeszcze kilka, np: fgets(stdin,table[n].imie,50);
Albo zwykła pętla z getchar();

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