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 11:44 | Pozvánky

    Přihlaste svou přednášku na další ročník konference LinuxDays, který proběhne 3. a 4. října na FIT ČVUT v pražských Dejvicích. Příjem témat poběží do konce prázdnin, pak proběhne veřejné hlasování a následně sestavení programu.

    Petr Krčmář | Komentářů: 0
    dnes 04:44 | Nová verze

    Byla vydána nová verze 2.4.68 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 13 zranitelností.

    Ladislav Hagara | Komentářů: 2
    včera 22:44 | IT novinky

    Apple na své vývojářské konferenci WWDC26 (Worldwide Developers Conference, keynote) představil řadu novinek. Vypíchnout lze novou generaci Apple Intelligence a zbrusu novou Siri, která dostala název Siri AI. Kvůli Aktu o digitálních trzích (DMA) však funkce Siri AI nebudou v systémech iOS 27 a iPadOS 27 k dispozici uživatelům v Evropské unii.

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

    Byla vydána nová verze 1.18.0 distribučního frameworku Flatpak (Wikipedie), tj. technologie umožňující distribuovat aplikace v podobě jednoho instalačního souboru na různé linuxové distribuce a jejich různá vydání. Přehled novinek na GitHubu. Vypíchnout lze podporu rozhraní /dev/kfd pro výpočty na kartách AMD (AMDKFD).

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | Nová verze

    aMule (Wikipedie), tj. multiplatformní klient pro peer-to-peer sdílení souborů pro sítě eD2k and Kademlia, byl po více než pěti letech od vydání poslední verze 2.3.3, vydán v nové major verzi 3.0.0 (GitHub). S novou webovou stránkou a dokumentací.

    Ladislav Hagara | Komentářů: 5
    včera 12:55 | IT novinky

    Byly vyhlášeni vítězové a zveřejněny vítězné zdrojové kódy (YouTube, GitHub) již 29. ročníku soutěže International Obfuscated C Code Contest (IOCCC), tj. soutěže o nejnepřehlednější (nejobfuskovanější) zdrojový kód v jazyce C.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | IT novinky

    Evropská komise předložila evropský balíček pro technologickou suverenitu, tedy soubor opatření, která mají posílit kapacity EU v oblasti polovodičů, umělé inteligence, cloudu a open source. To Evropě pomůže stát se lídrem v oblasti umělé inteligence, posílit její digitální autonomii a vytvářet podmínky pro udržitelnější digitální budoucnost.

    Ladislav Hagara | Komentářů: 11
    včera 04:44 | Nová verze

    OpenCV (Open Source Computer Vision, Wikipedie), tj. open source multiplatformní knihovna pro zpracování obrazu a počítačové vidění, byla vydána v nové major verzi 5.

    Ladislav Hagara | Komentářů: 0
    5.6. 22:22 | Nová verze

    Byla vydána nová verze 9.7 multiplatformní digitální pracovní stanice pro práci s audiem (DAW) Ardour. Přehled novinek, vylepšení a oprav v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    5.6. 18:22 | Komunita

    Vývojáři webového prohlížeče Ladybird dnes oznámili, že mění způsob vývoje. S blížícím se vydáním alfa verze přestávají přijímat veřejné pull requesty. Všechny otevřené veřejné pull requesty budou uzavřeny. Tým nedokáže garantovat bezpečnost AI generovaných pull requestů.

    Ladislav Hagara | Komentářů: 3
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (15%)
     (31%)
     (3%)
     (6%)
     (3%)
     (15%)
     (26%)
    Celkem 1855 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: Qt - dvojrozmerne pole objektu

    Otto Šabart avatar 21.3.2011 21:06 Otto Šabart | skóre: 13 | blog: KatiePC blog
    Qt - dvojrozmerne pole objektu
    Přečteno: 487×
    Ahojte.. Mel bych na vas dotaz ohledne Qt. Zkousim si naprogramovat jednu mensi ulohu a zasekl jsem se na nasledujicim: Mam v hlavickovem souboru definovane dvojrozmerne pole na objekty takto:
    QVector<QVector<<Figure*> > m_pole;
    
    Ve zdrojovem souboru mu pak urcim velikost:
    m_pole.resize(size);
    for (int x = 0; x < m_pole.size(); x++) {
      m_pole[x].resize(size);
    }
    
    Rekneme, ze promenna (vyse) => size = 8. Potom tedy inicializuji prvky pole:
      m_pole[4][4] = new Figure(4, 4, Figure::King, this);
      m_pole[7][7] = new Figure(7, 7, Figure::Queen, this);
    
    Nasledne pak v kodu potrebuji pristoupit pres pole k objektu Figure a zavolat jeji metodu:
      Figure::Type type = m_pole[x][y]->type();
    
    Zde prichazi problem. Po zavolani metody nastane Segmentation fault. Debugger hlasi, ze ho zpusobuje fce Figure::type(). Jeste tedy prikladam definici tridy Figure:
    zdrojak
    hlavickovy soubor
    Jeste dodam, ze uz jsem ze zoufalosti zkousel ruzne kombinace volani metody.. napriklad:
     Figure::Type type = ((Figure*)m_pole[x][y])->type();
     Figure::Type type = *m_pole[x][y])->type();
    

    Najde se to nekdo, kdo by mi dokazal poradit:-)?
    *´¨)¸.·´¨)¸.·***·>>> www.seberm.com

    Řešení dotazu:


    Odpovědi

    David Watzke avatar 21.3.2011 21:17 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Qt - dvojrozmerne pole objektu
    Jen tak pro zajímavost, proč si prostě neuděláš obyčejný 2D pole figur (8x8) a šaškuješ místo toho s vektorama?
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    Otto Šabart avatar 21.3.2011 21:20 Otto Šabart | skóre: 13 | blog: KatiePC blog
    Rozbalit Rozbalit vše Re: Qt - dvojrozmerne pole objektu
    Ted tu koukam na objekt QVector2D... Ten myslis?
    *´¨)¸.·´¨)¸.·***·>>> www.seberm.com
    Otto Šabart avatar 21.3.2011 21:23 Otto Šabart | skóre: 13 | blog: KatiePC blog
    Rozbalit Rozbalit vše Re: Qt - dvojrozmerne pole objektu
    nebo myslis udelat to uplne klasicky...a nemichat do toho vubec Qt?
    *´¨)¸.·´¨)¸.·***·>>> www.seberm.com
    David Watzke avatar 21.3.2011 21:27 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Qt - dvojrozmerne pole objektu
    Myslím přesně tohle.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    22.3.2011 13:27 Sten
    Rozbalit Rozbalit vše Re: Qt - dvojrozmerne pole objektu
    Objekt (this), který vytváří ony objekty, existuje i ve chvíli, kdy tu metodu voláte? Neděláte třeba jeho kopii?

    Jsou všechny prvky, ke kterým přistupujete pomocí x a y, inicializované (resp. nevoláte nějaký, který inicializovaný není)?

    Nepřesouváte ty prvky?
    Josef Kufner avatar 23.3.2011 00:35 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Qt - dvojrozmerne pole objektu
    Zavolej si nějakou dummy metodu, o které víš, že nemá na čem zkolabovat. Třeba tam bude jen printf("Hello world.") nebo tak něco (:-D). Ať víš, jestli je problém s voláním, nebo obsahem. Pokud to projde, tak tomu předáváš něco, co přestane existovat. Jinak by to fungovat mělo.
    Hello world ! Segmentation fault (core dumped)
    Otto Šabart avatar 23.3.2011 18:55 Otto Šabart | skóre: 13 | blog: KatiePC blog
    Rozbalit Rozbalit vše Re: Qt - dvojrozmerne pole objektu
    Moc dekuji vsem za rady. Uz jsem si chybu opravil. Mel jsem napsanou spatne podminku ve for cyklu:
    if (!m_pole[x][y])
      continue;
    
    a nasledne s polem pracoval a pristupoval do prvku, kde objekt Figure vubec nebyl.
    *´¨)¸.·´¨)¸.·***·>>> www.seberm.com

    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.