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
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)
Zjistit počet nových příspěvků
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.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 52 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