abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

dnes 06:00 | Nová verze

Byla vydána verze 1.3.0 odlehčeného desktopového prostředí Lumina (Wikipedie, GitHub) postaveného nad toolkitem Qt. Z novinek lze zmínit nový motiv ikon nahrazující Oxygen (material-design-[light/dark]) nebo vlastní multimediální přehrávač (lumina-mediaplayer).

Ladislav Hagara | Komentářů: 0
včera 17:33 | Bezpečnostní upozornění

Před šesti týdny byly publikovány výsledky bezpečnostního auditu zdrojových kódů OpenVPN a nalezené bezpečnostní chyby byly opraveny ve verzi OpenVPN 2.4.2. Guido Vranken minulý týden oznámil, že v OpenVPN nalezl další čtyři bezpečnostní chyby (CVE-2017-7520, CVE-2017-7521, CVE-2017-7522 a CVE-2017-7508). Nejzávažnější z nich se týká způsobu, jakým aplikace zachází s SSL certifikáty. Vzdálený útočník může pomocí speciálně

… více »
Ladislav Hagara | Komentářů: 0
včera 06:55 | Zajímavý projekt

V Edici CZ.NIC vyšla kniha Průvodce labyrintem algoritmů. Kniha je ke stažení zcela zdarma (pdf) nebo lze objednat tištěnou verzi za 339 Kč (připojení přes IPv4) nebo 289 Kč (připojení přes IPv6).

Ladislav Hagara | Komentářů: 6
včera 06:33 | Zajímavý software

Byla vydána verze 2.2.0 svobodného správce hesel KeePassXC (Wikipedie). Jedná se o komunitní fork správce hesel KeePassX s řadou vylepšení.

Ladislav Hagara | Komentářů: 0
včera 06:11 | IT novinky

Vývojář Debianu Henrique de Moraes Holschuh upozorňuje v diskusním listu debian-devel na chybu v Hyper-Threadingu v procesorech Skylake a Kaby Lake od Intelu. Za určitých okolností může chyba způsobit nepředvídatelné chování systému. Doporučuje se aktualizace mikrokódu CPU nebo vypnutí Hyper-Threadingu v BIOSu nebo UEFI [reddit].

Ladislav Hagara | Komentářů: 0
24.6. 01:23 | Komunita

Phoronix spustil 2017 Linux Laptop Survey. Tento dotazník s otázkami zaměřenými na parametry ideálního notebooku s Linuxem lze vyplnit do 6. července.

Ladislav Hagara | Komentářů: 3
23.6. 22:44 | Nová verze

Po třech měsících vývoje od vydání verze 5.5.0 byla vydána verze 5.6.0 správce digitálních fotografií digiKam (digiKam Software Collection). Do digiKamu se mimo jiné vrátila HTML galerie a nástroj pro vytváření videa z fotografií. V Bugzille bylo uzavřeno více než 81 záznamů.

Ladislav Hagara | Komentářů: 1
23.6. 17:44 | Nová verze

Byla vydána verze 9.3 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab. Představení nových vlastností v příspěvku na blogu a na YouTube.

Ladislav Hagara | Komentářů: 3
23.6. 13:53 | Nová verze

Simon Long představil na blogu Raspberry Pi novou verzi 2017-06-21 linuxové distribuce Raspbian určené především pro jednodeskové miniaturní počítače Raspberry Pi. Společně s Raspbianem byl aktualizován také instalační nástroj NOOBS (New Out Of the Box Software). Z novinek lze zdůraznit IDE Thonny pro vývoj v programovacím jazyce Python a především offline verzi Scratche 2.0. Ten bylo dosud možné používat pouze online. Offline bylo možné používat pouze Scratch ve verzi 1.4. Z nového Scratchu lze ovládat také GPIO piny. Scratch 2.0 vyžaduje Flash.

Ladislav Hagara | Komentářů: 1
22.6. 14:24 | Nová verze

Opera 46, verze 46.0.2597.26, byla prohlášena za stabilní. Nejnovější verze tohoto webového prohlížeče je postavena na Chromiu 59. Z novinek lze zmínit například podporu APNG (Animated Portable Network Graphics). Přehled novinek pro vývojáře na blogu Dev.Opera. Oznámení o vydání zmiňuje také první televizní reklamu.

Ladislav Hagara | Komentářů: 0
Chystáte se pořídit CPU AMD Ryzen?
 (6%)
 (31%)
 (1%)
 (9%)
 (44%)
 (9%)
Celkem 842 hlasů
 Komentářů: 65, poslední 1.6. 19:16
    Rozcestník

    Dotaz: Linearny zoznam c++

    Xgamer avatar 8.3.2011 15:23 Xgamer | skóre: 4
    Linearny zoznam c++
    Přečteno: 404×
    Zdravím už zopár dní bojujem zo zadaním z C++. A už som fakt zúfalý :( Mojou ulohou je dorobiť danú šablonu. Tu su zdrojáky:

    main.c
    #include < iostream >
    #include "cList.h"
    using namespace std;
    
    int main()
    {
        cout << "Linked List" << endl;
        cout << "--------------" << endl;
        cNode* n1 = new cNode("1");
        cNode* n2 = new cNode("2");
        cNode* n3 = new cNode("3");
    
        cList zoznam;
        zoznam.append(n1);
        zoznam.append(n2);
        zoznam.append(n3);
        zoznam.append(new cNode(*n1));
        zoznam.append(new cNode(*n1));
        zoznam.append(new cNode(*n1));
        zoznam.printContents();
    
        cNode* n4 = new cNode("4");
        cNode* n2_5 = new cNode("2.5");
        zoznam.insert(n4, 10);
        zoznam.insert(n2_5, 2);
        zoznam.deleteNode(1);
        zoznam.deleteNode(0);
        zoznam.deleteNode(10);
        cout<<"---------------------------"<< endl;
        zoznam.printContents();
    
        cList zoznam2 = cList(zoznam);
        zoznam2.deleteNode(0);
        zoznam2.deleteNode(0); // nezmaže mi nultý prvok vidim to na problem s kopirovacím konštruktorom
        cout<<"------------Zoznam 1 - original---------------"<< endl;
        zoznam.printContents();
        cout<<"------------Zoznam 2 - kopia---------------"<< endl;
        zoznam2.printContents();
    
       delete n1; // hádže segmantation fault
       delete n2;
       delete n3;
       delete n4;
       delete n2_5;
    
        return 0;
    }
    [/code]
    
    Problémový kod z cList.cpp 
    
    [code]#include "cList.h"
    
    using namespace std;
    cList::cList()
    {
        first = NULL;
    }
    
    cList::cList(const cList &oldList) // kopíruje aj to čo už nemá byť v pamäti, predpokladám že preto mi nemaže to čo by malo 
    {
    
        first = NULL;
    
        if (oldList.getLength() > 0)
        {
            first = new cNode(oldList.first->getData());
    
            cNode *tmp = first, *tmp2;
    
            for (int i = 0; i < oldList.getLength(); i++)
            {
                tmp2 = new cNode(oldList.getNode(i)->getData());
    
                tmp->setNext(tmp2);
    
                tmp = tmp2;
            }
        }
    }
    
    cList::~cList() // tento deštruktor asi sposobuje segmentation fault
    {
        for(int i = 0;i < getLength();i++)
        {
            cNode *tmp = getNode(i); // funkcie getNode vráti uzol na danom indexe, funguje v iných častiach kodu, v nej by problem byť nemal
            delete tmp;
        }
        delete first;
    }
    Ostatne časti kodu zatial nebudem posielať.. . Som si na 99% istý že problem je v tomto kode. Pridal som do zdrojaku komentáre že čo nefunguje. Pri kopirovaní celeho zoznamu sa skopiruje aj to čo by tam už nemalo byť neviem prečo:( V tom deštruktore idem asi zle na to uvolnovanie pamäte.. ale zase keď nemam v tom deštruktore nič tak mi to počas delete sekcie v main.c vypiš random vypis pamäte... Ďakujem :)

    Řešení dotazu:


    Odpovědi

    8.3.2011 17:03 Sten
    Rozbalit Rozbalit vše Re: Linearny zoznam c++
    Není náhodou getNode(0) to samé, co first? Protože jinak ho kopírujete a mažete dvakrát.
    Řešení 1× (Xgamer (tazatel))
    Xgamer avatar 8.3.2011 17:18 Xgamer | skóre: 4
    Rozbalit Rozbalit vše Re: Linearny zoznam c++
    Hej na to som prišiel :) preto mi to zle mazalo v kopií, už som to doriešil vlastnými silami, aj keď niekto by mi mohol poradiť ako na optimálneho deštruktora. Ako je navýhodnejšie uvolnit pamät ktory si ten linearny zoznam alokuje? thx
    Řešení 1× (Xgamer (tazatel))
    8.3.2011 17:56 Sten
    Rozbalit Rozbalit vše Re: Linearny zoznam c++
    Třeba takto:
    cList::~cList()
    {
    	this->clear();
    }
    
    void cList::clear()
    {
    	struct destroyer
    	{
    		destroyer(cNode *first)
    			: current(first)
    		{}
    
    		~destroyer()
    		{
    			this->operator ()();
    		}
    
    		void operator ()()
    		{
    			while (this->current) {
    				cNode *n = this->current;
    				this->current = n->getNext();
    				delete n;
    			}
    		}
    
    		cNode *current;
    	};
    
    	destroyer d(this->first);
    	d();
    }
    
    Tohle správně zdestruuje celý seznam, i pokud destruktor některého cNode vyhodí výjimku.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.