ATNEL tech-forum
https://forum.atnel.pl/

Lista dwukierunkowa - kilka pytań
https://forum.atnel.pl/topic23278.html
Strona 1 z 1

Autor:  Nef.ID [ 29 lip 2020, o 20:33 ]
Tytuł:  Lista dwukierunkowa - kilka pytań

Witam,
tak dla rozruszania kilku głów mam ostatnio taki problem,
chciałbym stworzyć sobie listę dwukierunkową typu słownik tak jakby to powiedzieli ci z C++.
Aby nie wywarzać otwartych drzwi zajrzałem, co mówi google.
Oczywiście jest wiele gotowców.
I np coś takiego:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

oraz np.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

czyli wskaźnik do wskaźnika
Na innej stronie mamy inny przykład:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Oraz dalej:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Czyli referencję do wskaźnika.
Oczywiście są też normalni, którzy nie korzystają ze wskaźników do wskaźników czy referencji:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Pytanie może moje jest głupie jak but, ale nie mogę zrozumieć tych autorów (powyżej przytaczanych), dlaczego, a może jest jakiś powód, że te wskaźniki do wskaźników czy referencja do wskaźników, a nie prościej.
Zaznaczam, że węzły są tworzone dynamicznie.
Czy ktoś umiałby mi to wytłumaczyć.
Pytanie drugie do Mirka, jak nas słucha. Nigdy nie robiłeś ** czy *&, ani nie korzystałeś z malloc().Dlaczego, rozumiem tych z C++, bo mają new?

------------------------ [ Dodano po: 17 minutach ]

P.S. przykłady były z listy jednokierunkowej, ale tym się nie sugerować proszę.

------------------------ [ Dodano po: 30 minutach ]

Jutro przeproszę Pana Grębosza Jerzego i zajrzę do jego książki Pasja C++.

------------------------ [ Dodano po: 36 minutach ]

To co napisane w C można przenieść do C++, ale odwrotnie to chyba nie.

Autor:  mirekk36 [ 29 lip 2020, o 21:13 ]
Tytuł:  Re: Lista dwukierunkowa - kilka pytań

Nef.ID napisał(a):
Nigdy nie robiłeś **

to pytanie czy stwierdzenie ? ;) bo wygląda na stwierdzenie - i nie wiem na podstawie czego. Już w Bluebooku pokazuję przykład funkcji strtok_r() gdzie używany jest wskaźnik do wskaźnika i dość łatwo to zrozumieć - ale pewnie nie zajrzałeś do przykładu.

Nef.ID napisał(a):
ani nie korzystałeś z malloc().Dlaczego,

To też nie widzę znaku zapytania ;) tylko na końcu - sugerujący że hmm nie wiem czy rozumiesz tych z C++ czy nie ?

Ja tam używałem malloc() w C choć rzadko - to zależy od potrzeb. A i na forum są fajne przykłady z malloc, poszukaj np kodów kolegi KRAUSER jak pokazał kod kalkulatora na wyświetlaczu TFT

Autor:  Nef.ID [ 29 lip 2020, o 21:31 ]
Tytuł:  Re: Lista dwukierunkowa - kilka pytań

OK. już zaglądam do BB, jak również do kolegi Krauser-a.
Aczkolwiek są też pytania o te nie w pełni podane przykłady w zastosowaniu do listy.

Autor:  Jarecki [ 30 lip 2020, o 06:55 ]
Tytuł:  Re: Lista dwukierunkowa - kilka pytań

Witam,

listy to ciekawy temat i warto go dobrze zrozumieć, nie wiem czy zaglądałeś tutaj: http://www.embeddeddev.pl/menu-lcd-list ... ierunkowe/ ale autor tłumaczy po kolei co i jak na przykładzie menu na LCD. Polecam poczytać :)

Autor:  fofex [ 30 lip 2020, o 07:18 ]
Tytuł:  Re: Lista dwukierunkowa - kilka pytań

Nef.ID napisał(a):
dlaczego, a może jest jakiś powód, że te wskaźniki do wskaźników

Powód jest taki, że w przykladzie 1. funkcja modyfikuje daną wskazującą na początek listy (nowe elementy dołączane są od głowy) i ją zwraca przez wskaźnik do parametru. Parametr jest wkaźnikiem więc powstaje dwupoziomowy wskaźnik.
Funkcja w przykładzie 3. nie modyfikuje głowy (nowe elementy dołączane są do ogona) więc nic nie zwraca. W tym przykładzie tkwi pułapka, mianowicie wywołanie funkcji na pustej liście spowoduje wywalenie się programu.
Przykład nr 2. wygląda na nonsens, ani to C ani Cpp

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/