Ahoj prosím poraďte jak toto pracuje, jak sem se dival na datovou strukturu jednosměrný seznam tak ve strukture se nachazi struct seznam *dalsi; a zajimalo jak tento ukazatel funguje, jak může ukazovat na další část paměti když se mu pokaždě přiřadí hodnota NULL...
Fórum › C / C++
Práce seznamu
![](img/forum_vlakno_help_vyreseno.png)
To pouk : NULL se tomu přiřazuje na začátku, protože neexistuje další prvek. Ale pokud chceš přidat další prvek do seznamu, uložíš do *dalsi adresu toho nového. Ukážu to na jednoduchym kódu
struct SEZNAM {
int iValue;
SEZNAM *pNext;
SEZNAM() { pNext = NULL; };
~SEZNAM();
};
int main() {
SEZNAM *pSeznam;
SEZNAM *pTemp;
pSeznam = new SEZNAM;
pTemp = new SEZNAM;
pSeznam->iValue = 0;
// Teď má pSeznam->pNext hodnotu NULL;
pTemp->iValue = 1;
pSeznam->pNext = new SEZNAM; // Alokujeme další
memcpy(pSeznam->pNext, pTemp, sizeof(*pTemp));
// Teď má pSeznam->pNext adresu vytvořenou při alokaci a uchovává stejné data jako pTemp;
// Pro skutečnou práci se seznamem je dobré si někde uchovávat informaci o prvním a posledním prvku
// A nezapomenout na uvonění, které bude složitější než tady v té ukázce
delete pSeznam->pNext; delete pSeznam; delete pTemp;
}
pokud by se jen pridavalo, tak muzes zneuzit alokace po blocich (dejme tomu pole 100hodnot a pokud potrebujes 101 tak uz alokace dalsiho a navazat...)
pokud planujes i to mazani hodnot tak uz je to takovy dost narocny (u alokace kazdeho zvlast proste jen na predchozi das ukazatel naslednika toho mazaneho a free/delete)
![](img/forum_nove_psp_new.png)
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×![](/img/smile/1.gif)
![](/img/smile/2.gif)
![](/img/smile/3.gif)
![](/img/smile/4.gif)
![](/img/smile/5.gif)
![](/img/smile/6.gif)
![](/img/smile/7.gif)
![](/img/smile/8.gif)
![](/img/smile/9.gif)
![](/img/smile/10.gif)
![](/img/smile/11.gif)
![](/img/smile/12.gif)
![](/img/smile/13.gif)
![](/img/smile/14.gif)
![](/img/smile/15.gif)
![](/img/smile/16.gif)
![](/img/smile/17.gif)
![](/img/smile/18.gif)
![](/img/smile/19.gif)
![](/img/smile/20.gif)
![](/img/smile/21.gif)
![](/img/smile/22.gif)
![](/img/smile/23.gif)
![](/img/smile/24.gif)
![](/img/smile/25.gif)
![](/img/smile/26.gif)
![](/img/smile/27.gif)
![](/img/smile/28.gif)
![](/img/smile/29.gif)
![](/img/smile/30.gif)
![](/img/smile/31.gif)
![](/img/smile/1.gif)
![](/img/smile/2.gif)
![](/img/smile/3.gif)
![](/img/smile/4.gif)
![](/img/smile/5.gif)
![](/img/smile/6.gif)
![](/img/smile/7.gif)
![](/img/smile/8.gif)
![](/img/smile/9.gif)
![](/img/smile/10.gif)
![](/img/smile/11.gif)
![](/img/smile/12.gif)
![](/img/smile/13.gif)
![](/img/smile/14.gif)
![](/img/smile/15.gif)
![](/img/smile/16.gif)
![](/img/smile/17.gif)
![](/img/smile/18.gif)
![](/img/smile/19.gif)
![](/img/smile/20.gif)
![](/img/smile/21.gif)
![](/img/smile/22.gif)
![](/img/smile/23.gif)
![](/img/smile/24.gif)
![](/img/smile/25.gif)
![](/img/smile/26.gif)
![](/img/smile/27.gif)
![](/img/smile/28.gif)
![](/img/smile/29.gif)
![](/img/smile/30.gif)
![](/img/smile/31.gif)
![](/img/smile/32.gif)
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 78 hostů
Podobná vlákna
Práce s ukazateli na prvky seznamu — založil Myshaak
Přidání seznamů v seznamu do 2.seznamu — založil Ahoj3
Menu , prace s textovymi soubory - závěrečná práce , nevim si rady :( — založil honzajs
Práce v Irsku - Práce v IT a jiných oborech — založil MakeITinIreland
Zarovnání seznamu — založil UrbiCZ
Moderátoři diskuze