wskazniki tablice i stuctury (C)

Inkognito
Użytkownik
Użytkownik
Posty: 218
Rejestracja: 24 lis 2009, o 10:55
Płeć: Mężczyzna
Lokalizacja: Wilno
Podziękował: 27 razy

wskazniki tablice i stuctury (C)

Post autor: Inkognito »

Kod: Zaznacz cały

#define MAX 30
struct czl{
	char imie[20];
...	
};
void main() {
	int i, n;
	FILE *fl;
        struct czl zmo;
	struct czl *zmog[MAX];
        zmog[0]=&zmo;
	printf("Ile?
");
	scanf("%d", &n);
        if(n<MAX)
        {
	for(i=0;i<n;i++) {
		printf("Zmog nr %d
", i+1);
		scanf("%s", zmog[i]->imie);
		...
	}
nie rozumiem czemu ale nie daje mi wypelnic cykl wiecej nisz jeden raz
za drugim razem poprostu wylancza sei program po wprowadzeniu imienia.
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

wskazniki tablice i stuctury (C)

Post autor: soku11 »

Samego kodu nie komentuje. Błąd zapewne wynika z tych linijek:

Kod: Zaznacz cały

      struct czl zmo;
   struct czl *zmog[MAX];
        zmog[0]=&zmo;
1. Tworzysz na stosie obiekt zmo struktury czl.
2. Tworzysz tablicę zawierającą MAX wskaźników na elementy struktury czl.
3. Do pierwszego wskaźnika przypisujesz adres struktury stworzonej w 1.

I teraz pytanie - na co wskazują pozostałe elementy tablicy? Na nic konkretnego. W związku z tym przy próbie zapisu pod niezdefiniowane miejsce następuje wywalenie się aplikacji.
Inkognito
Użytkownik
Użytkownik
Posty: 218
Rejestracja: 24 lis 2009, o 10:55
Płeć: Mężczyzna
Lokalizacja: Wilno
Podziękował: 27 razy

wskazniki tablice i stuctury (C)

Post autor: Inkognito »

To co napisalem doskonale rozumiem...
w tym i problem, nie wiem jak poprawnie zapisac by wygladaloby taksamo (obowiazkowa tablica mskazuwek) i nie wylatalaby w czasie pracy.
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

wskazniki tablice i stuctury (C)

Post autor: soku11 »

Opisz dokładnie i po POLSKU z czym masz problem. Opisałem co robi ten program, by uświadomić ci błąd - próba zapisu pod niezdefiniowane miejsce (wskaźniki poza pierwszym wskazują na śmieci). Co dokładnie chcesz uzyskać - nie wiem.
Inkognito
Użytkownik
Użytkownik
Posty: 218
Rejestracja: 24 lis 2009, o 10:55
Płeć: Mężczyzna
Lokalizacja: Wilno
Podziękował: 27 razy

wskazniki tablice i stuctury (C)

Post autor: Inkognito »

dzieki za pomoc,
blad znalazlem i poprawilem
ODPOWIEDZ