<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=23278&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2020-07-30T07:18:49+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=23278&amp;mode</id>
<entry>
<author><name><![CDATA[fofex]]></name></author>
<updated>2020-07-30T07:18:49+01:00</updated>
<published>2020-07-30T07:18:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23278&amp;p=228463#p228463</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23278&amp;p=228463#p228463"/>
<title type="html"><![CDATA[Re: Lista dwukierunkowa - kilka pytań]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23278&amp;p=228463#p228463"><![CDATA[
<div class="quotetitle">Nef.ID napisał(a):</div><div class="quotecontent"><br />dlaczego, a może jest jakiś powód, że te wskaźniki do wskaźników<br /></div><br />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. <br />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. <br />Przykład nr 2. wygląda na nonsens, ani to C ani Cpp<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21072">fofex</a> — 30 lip 2020, o 07:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2020-07-30T06:55:23+01:00</updated>
<published>2020-07-30T06:55:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23278&amp;p=228462#p228462</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23278&amp;p=228462#p228462"/>
<title type="html"><![CDATA[Re: Lista dwukierunkowa - kilka pytań]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23278&amp;p=228462#p228462"><![CDATA[
Witam,<br /><br />listy to ciekawy temat i warto go dobrze zrozumieć, nie wiem czy zaglądałeś tutaj: <!-- m --><a class="postlink" href="http://www.embeddeddev.pl/menu-lcd-listy-jedno-dwukierunkowe/" >http://www.embeddeddev.pl/menu-lcd-list ... ierunkowe/</a><!-- m --> ale autor tłumaczy po kolei co i jak na przykładzie menu na LCD. Polecam poczytać <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 30 lip 2020, o 06:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nef.ID]]></name></author>
<updated>2020-07-29T21:31:42+01:00</updated>
<published>2020-07-29T21:31:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23278&amp;p=228461#p228461</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23278&amp;p=228461#p228461"/>
<title type="html"><![CDATA[Re: Lista dwukierunkowa - kilka pytań]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23278&amp;p=228461#p228461"><![CDATA[
OK. już zaglądam do BB, jak również do kolegi Krauser-a.<br />Aczkolwiek są też pytania o te nie w pełni podane przykłady w zastosowaniu do listy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8366">Nef.ID</a> — 29 lip 2020, o 21:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2020-07-29T21:13:22+01:00</updated>
<published>2020-07-29T21:13:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23278&amp;p=228460#p228460</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23278&amp;p=228460#p228460"/>
<title type="html"><![CDATA[Re: Lista dwukierunkowa - kilka pytań]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23278&amp;p=228460#p228460"><![CDATA[
<div class="quotetitle">Nef.ID napisał(a):</div><div class="quotecontent"><br />Nigdy nie robiłeś **<br /></div><br />to pytanie czy stwierdzenie ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> 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.<br /><br /><div class="quotetitle">Nef.ID napisał(a):</div><div class="quotecontent"><br />ani nie korzystałeś z malloc().Dlaczego,<br /></div><br />To też nie widzę znaku zapytania <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> tylko na końcu - sugerujący że hmm nie wiem czy rozumiesz tych z C++ czy nie ?<br /><br />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<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 29 lip 2020, o 21:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nef.ID]]></name></author>
<updated>2020-07-29T20:33:11+01:00</updated>
<published>2020-07-29T20:33:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23278&amp;p=228459#p228459</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23278&amp;p=228459#p228459"/>
<title type="html"><![CDATA[Lista dwukierunkowa - kilka pytań]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23278&amp;p=228459#p228459"><![CDATA[
Witam, <br />tak dla rozruszania kilku głów mam ostatnio taki problem,<br />chciałbym stworzyć sobie listę dwukierunkową typu słownik tak jakby to powiedzieli ci z C++.<br />Aby nie wywarzać otwartych drzwi zajrzałem, co mówi google.<br />Oczywiście jest wiele gotowców.<br />I np coś takiego:<br />[syntax=c]typedef struct ListElement {<br />    int data;<br />    struct ListElement * next;<br />} ListElement_type;[/syntax]<br />oraz np.<br />[syntax=c]void push_front(ListElement_type **head, int number)<br />{<br /> <br />    ListElement_type *current;<br />    current=(ListElement_type *)malloc(sizeof(ListElement_type));<br /> <br />    current-&gt;data=number;<br />    current-&gt;next=(*head);<br />    *head=current;<br /> <br />}[/syntax]<br />czyli wskaźnik do wskaźnika<br />Na innej stronie mamy inny przykład:<br />[syntax=c]struct listacykl<br /><br />{<br /><br />int key;<br /><br />struct listacykl *next,*prev;<br /><br />}*head=NULL,*element=NULL,*temp=NULL;[/syntax]<br />Oraz dalej:<br />[syntax=c]void dodaj(struct listacykl  * &amp; head,int x){<br /><br />{<br /><br />if(head==NULL)<br />{<br />head=(struct listacykl*)malloc(sizeof(struct listacykl));<br />head-&gt;key=x;<br />head-&gt;next=head;<br />head-&gt;prev=head;<br />}   else{...[/syntax]<br />Czyli referencję do wskaźnika.<br />Oczywiście są też normalni, którzy nie korzystają ze wskaźników do wskaźników czy referencji:<br />[syntax=c]typedef struct punkt<br />{<br /> int x;<br /> int y;<br /> struct punkt *nast;<br />} el_listy; <br /><br />el_listy *pierwszy;<br /><br />void dodaj_do_listy (el_listy *lista, int liczba)<br />{<br /> el_listy *wsk, *nowy;<br /> wsk = lista;<br /> while (wsk-&gt;nast != NULL)<br /> { <br />    wsk = wsk-&gt;nast; /* przesuwamy wsk aż znajdziemy ostatni element */<br /> }<br /> nowy =(el_listy*) malloc (sizeof(el_listy));<br /> nowy-&gt;x = liczba;<br /> nowy-&gt;nast = NULL;<br /> wsk-&gt;nast = nowy; /* podczepiamy nowy element do ostatniego z listy */<br />}[/syntax]<br />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.<br />Zaznaczam, że węzły są tworzone dynamicznie.<br />Czy ktoś umiałby mi to wytłumaczyć.<br />Pytanie drugie do Mirka, jak nas słucha. Nigdy nie robiłeś ** czy *&amp;, ani nie korzystałeś z malloc().Dlaczego, rozumiem tych z C++, bo mają new?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 17 minutach ]</span></strong><br /><br />P.S. przykłady były z listy jednokierunkowej, ale tym się nie sugerować proszę.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 30 minutach ]</span></strong><br /><br />Jutro przeproszę Pana Grębosza Jerzego i zajrzę do jego książki Pasja C++.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 36 minutach ]</span></strong><br /><br />To co napisane w C można przenieść do C++, ale odwrotnie to chyba nie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8366">Nef.ID</a> — 29 lip 2020, o 20:33</p><hr />
]]></content>
</entry>
</feed>