Struktura i odwoływanie się do niej z jej wnętrza
Ostatnio zmodyfikowano 2014-12-05 00:13
wilkoo13 Temat założony przez niniejszego użytkownika |
Struktura i odwoływanie się do niej z jej wnętrza » 2014-12-04 17:36:38 Może mi ktoś wytłumaczyć ten kod linijka po linijce? Czy użycie typedef jest tutaj konieczne? SelfReferential* sr; - co to jest???????? Czemu tego wyżej nie można zapisać int*? Czy tu nie chodzi o wskaźnik?
typedef struct SelfReferential { int i; SelfReferential * sr; } SelfReferential;
int main() { SelfReferential sr1, sr2; sr1.sr = & sr2; sr2.sr = & sr1; sr1.i = 47; sr2.i = 1024; }
|
|
Kaikso |
» 2014-12-04 21:39:36 SelfReferential to lista jednokierunkowa, a w main utworzyłeś listę cykliczną. Działa to tak że kolejka jednokierunkowa to struktura zawierająca jakieś dane (u ciebie jest to int i) i odwołanie do następnej struktury tego typu. W main jest to lista cykliczna bo w ostatni element nie kończy listy tz. wskaźnik do następnej struktury jest pusty (ma wartość NULL), ale ma wartość pierwszego elementu. Dzięki temu możesz np. zrobić tak: #include <malloc.h>
#define NTAB 16
typedef struct SelfReferential { int i; SelfReferential * sr; } SelfReferential;
int main() { SelfReferential sr; SelfReferential * tmp = & sr; int i; for( i = 1; i < NTAB; i++ ) { tmp->sr = malloc( sizeof( SelfReferential ) ); tmp = tmp->sr; } tmp->sr = & sr; tmp = & sr; for( i = 0; i < NTAB; i++ ) { tmp = tmp->str } tmp = tmp->sr; for( i = 1; i < NTAB; i++ ) { SelfReferential * next = tmp->sr; free( tmp ); tmp = next; } return 0; }
|
|
wilkoo13 Temat założony przez niniejszego użytkownika |
» 2014-12-04 23:28:00 Jak byś mógł mi wyjaśnić co to jest kolejka. Dopiero zaczynam struktury i narazie nie wiem o nich nic.
Co oznacza * przy nazwie struktury.? Co oznacza nazwa struktury w swoim ciele jak przestawiłem wyżej? Co oznacza & przy nazwie struktury? Co to jest kolejka oraz co oznacza odwoływanie się do struktur? Struktura to struct struktura{...} czy struktura s1. |
|
Kaikso |
» 2014-12-05 00:13:22 Co oznacza * przy nazwie struktury.? |
Przy typie oznacza on typ wskaźnika. WskaźnikiCo oznacza nazwa struktury w swoim ciele jak przestawiłem wyżej |
Ta nazwa nie ma znaczenia, możesz ją zmienić na inną. Co oznacza & przy nazwie struktury? |
Jest to operator pobrania adresu. WskaźnikiCo to jest kolejka oraz co oznacza odwoływanie się do struktur? |
Przepraszam pomyliłem się nie kolejka lecz lista. Tu masz opis co to jest: http://pl.wikipedia.org/wiki/ListaStruktura to struct struktura{...} czy struktura s1. |
struct struktura{...}, a s1 to zmienna. Struktury danych |
|
« 1 » |