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í
×
    včera 17:22 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    včera 00:11 | Nová verze

    UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch 24.04-1.3. Současně oznámila, že nadcházející větší vydání 24.04-2.0 bude mít modernější webový prohlížeč.

    Ladislav Hagara | Komentářů: 0
    8.5. 17:11 | Zajímavý projekt

    Ploopy po DIY trackballech či sluchátkách představuje nový externí DIY trackpoint se čtyřmi tlačítky Bean. Obsahuje snímač Texas Instruments TMAG5273, spínače Omron D2LS-21 a řadič RP2040, používá firmware QMK. Schémata jsou na GitHubu; sadu lze předobjednat za 69 kanadských dolarů (bez dopravy a DPH).

    |🇵🇸 | Komentářů: 0
    8.5. 03:33 | Zajímavý článek

    Mozilla před dvěma týdny na svém blogu oznámila, že díky Claude Mythos Preview bylo ve Firefoxu nalezeno a opraveno 271 bezpečnostních chyb. Včera vyšel na Mozilla Hacks článek s podrobnějšími informacemi. Z 271 bezpečnostních chyb mělo 180 chyb vysokou závažnost, 80 chyb střední závažnost a 11 chyb nízkou závažnost. Celkově bylo v dubnu ve Firefoxu opraveno 423 bezpečnostních chyb. Čísla CVE nemusí být přiřazována jednotlivým chybám. CVE-2026-6784 například představuje 154 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 0
    7.5. 22:55 | Bezpečnostní upozornění

    Před týdnem zranitelnost Copy Fail. Dnes zranitelnost Dirty Frag. Běžný uživatel může na Linuxu získat práva roota (lokální eskalaci práv). Na většině linuxových distribucí vydaných od roku 2017. Aktuálně bez oficiální záplaty a CVE čísla [oss-security mailing list].

    Ladislav Hagara | Komentářů: 8
    7.5. 14:00 | Humor

    Ačkoli je papež Lev XIV. hlavou katolické církve a stojí v čele více než miliardy věřících po celém světě, také on někdy řeší všední potíže. A kdo v životě neměl problémy se zákaznickou linkou? Krátce poté, co nastoupil do úřadu, musel papež se svou bankou řešit změnu údajů. Operátorka ale nechtěla uvěřit, s kým mluví, a Svatému otci zavěsila.

    Ladislav Hagara | Komentářů: 11
    7.5. 05:11 | Nová verze

    Incus, komunitní fork nástroje pro správu kontejnerů LXD, byl vydán ve verzi 7.0 LTS (YouTube). Stejně tak související LXC a LXCFS.

    Ladislav Hagara | Komentářů: 0
    7.5. 05:00 | Nová verze

    Google Chrome 148 byl prohlášen za stabilní. Nejnovější stabilní verze 148.0.7778.96 přináší řadu novinek z hlediska uživatelů i vývojářů. Vypíchnout lze Prompt API (demo) pro přímý přístup k AI v zařízení. Podrobný přehled v poznámkách k vydání. Opraveno bylo 127 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    6.5. 16:44 | Komunita

    Richard Hughes oznámil, že po společnostech Red Hat a Framework a organizacích OSFF a Linux Foundation, službu Linux Vendor Firmware Service (LVFS) umožňující aktualizovat firmware zařízení na počítačích s Linuxem, nově sponzorují také společnosti Dell a Lenovo. Do dnešního dne bylo díky LVFS provedeno více než 145 milionů aktualizací firmwarů od více než 100 různých výrobců na milionech linuxových zařízení.

    Ladislav Hagara | Komentářů: 0
    6.5. 15:22 | IT novinky

    Americké technologické společnosti Microsoft, Google a xAI souhlasily, že vládě Spojených států poskytnou přístup k novým modelům umělé inteligence (AI) před jejich uvedením na trh. Oznámila to americká vláda, která tak bude moci prověřit, zda modely nepředstavují hrozbu pro národní bezpečnost. Oznámení podtrhuje rostoucí obavy Washingtonu z rizik spojených s výkonnými AI systémy. Americké úřady chtějí v rámci předběžného přístupu

    … více »
    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (9%)
     (2%)
     (14%)
     (32%)
     (4%)
     (7%)
     (3%)
     (16%)
     (24%)
    Celkem 1542 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: Linearny zoznam c++

    Xgamer avatar 8.3.2011 15:23 Xgamer | skóre: 4
    Linearny zoznam c++
    Přečteno: 576×
    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.