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 15:44 | Komunita

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice dnes slaví 6 let od svého oficiálního vzniku. Nadace byla představena 28. září 2010. Formálně ale byla založena až 17. února 2012. Poslední lednový den byl vydán LibreOffice 6.0. Dle zveřejněných statistik byl za dva týdny stažen již cca milionkrát.

Ladislav Hagara | Komentářů: 1
včera 04:44 | Bezpečnostní upozornění

CSIRT.CZ upozorňuje, že byla vydána nová verze 1.2.3 svobodného routovacího démona Quagga (Wikipedie) přinášející několik bezpečnostních záplat. Při nejhorší variantě může dojít až k ovládnutí běžícího procesu, mezi dalšími možnostmi je únik informací z běžícího procesu nebo odepření služby DoS. Konkrétní zranitelnosti mají následující ID CVE-2018-5378, CVE-2018-5379, CVE-2018-5380 a CVE-2018-5381.

Ladislav Hagara | Komentářů: 0
včera 00:22 | Pozvánky

V sobota 7. dubna proběhne v Brně na FIT VUT nekomerční konference Security Session '18 věnovaná novinkám a aktuálním problémům v oblasti bezpečnosti mobilních a informačních technologií. Organizátoři vyhlásili CFP. Návrhy přednášek a workshopů lze zaslat do 4. března. Spuštěna byla registrace.

Ladislav Hagara | Komentářů: 0
16.2. 23:55 | Nová verze

Byla vydána verze 1.10 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání. Zdůraznit lze vylepšené cachování buildů.

Ladislav Hagara | Komentářů: 1
15.2. 22:55 | Komunita

V sobotu 21. dubna proběhne v Bratislavě na Fakultě informatiky a informačních technologií STU konference Bratislava OpenCamp 2018. Organizátoři vyhlásili CFP. Návrhy přednášek a workshopů lze zaslat do 10. března. Spuštěna byla registrace.

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

Byla vydána verze 1.24 programovacího jazyka Rust (Wikipedie). Z novinek vývojáři zdůrazňují nový nástroj rustfmt pro reformátování zdrojových kódů dle požadovaného programovacího stylu a inkrementální překlad. Více v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust By Example.

Ladislav Hagara | Komentářů: 6
15.2. 13:00 | Komunita

Desktopovému týmu Ubuntu by se hodilo více informací o desktopech uživatelů Ubuntu. V diskusním listu ubuntu-devel byl k diskusi předložen návrh řešení a seznam odesílaných informací. Ve výchozím stavu by mělo být odesílaní informací povoleno. Uživatel by měl mít možnost odesílaní kdykoli jednoduše zakázat [reddit].

Ladislav Hagara | Komentářů: 21
15.2. 05:55 | Komunita

V úterý 13. února vypršela platnost posledního patentu US 7,334,248 souvisejícího s MPEG-2 [Hacker News].

Ladislav Hagara | Komentářů: 23
15.2. 04:44 | Komunita

Organizace Electronic Frontier Foundation (EFF) na svém blogu oznámila, že otevřená certifikační autorita Let's Encrypt dosáhla dalšího milníku. Počet platných certifikátů překročil 50 milionů, viz statistiky. Cekově bylo vydáno již přes 217 milionů certifikátů.

Ladislav Hagara | Komentářů: 0
15.2. 00:22 | Pozvánky

Konference SUSE Expert Days 2018 proběhnou mimo jiné také 1. března v Bratislavě a 15. března v Praze.

Ladislav Hagara | Komentářů: 0
Který webový vyhledávač používáte nejčastěji?
 (3%)
 (27%)
 (62%)
 (2%)
 (3%)
 (1%)
 (1%)
 (1%)
Celkem 339 hlasů
 Komentářů: 34, poslední 14.2. 18:44
    Rozcestník

    Dotaz: Pole retezcu v Cecku

    26.9.2003 10:51 Tom
    Pole retezcu v Cecku
    Přečteno: 1957×
    Zdravim,

    da se prosim vytvorit nejakym zpusobem pole retezcu, pokud pri kompilaci nevim kolik prvku (radku) bude obsahovat ?

    klasicky se definuje pomoci

    napr char *p_text[4];

    p_text[0]= "prvni"; p_text[1]= "druhy"; atd.

    ale jak nadefinovat toto pole pokud nebudu znat pocet "radku" pole?

    Tom

    Odpovědi

    26.9.2003 12:07 Dušan Merta | skóre: 3 | Trnávka
    Rozbalit Rozbalit vše Pole retezcu v Cecku
    Tohle by ti mohl pomoct:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define RADKY 5
    #define DELKA 256
    int main(void) {
      char **text;
      int i;
      
      /* Alokace pole. */
      text=(char **) malloc(RADKY*sizeof(char *));
      for (i=0; i<RADKY; i++)
        text[i]=(char *) malloc(DELKA*sizeof(char));
        
      /* Neco do nej dame. */
      strcpy(text[0], "prvni");
      strcpy(text[1], "druhy");
      
      /* Zkusime to vytisknout. */
      printf("%s", text[0]);
      
      /* Uvolneni pole. */
      for (i=0; i<RADKY; i++) free(text[i]);
      free(text);
      
      return(0);
    }
    
    Místo RADKY a DELKA můžeš mít libvolnou proměnnou typu int. Nezapomeň, že dvourozměrné pole musíš uvolňovat ve dvou krocích. Snad jsem to trefil, kdyžtak napiš mail.
    26.9.2003 12:13 Maud Lebowski
    Rozbalit Rozbalit vše Pole retezcu v Cecku
    mas to asi spravne, ale on se ptal na to co delat kdyz neznas predem tu hodnotu RADKY. Zrejme bude treba to davat do tzv zasobniku, cili vytvorit strukturu s jednim ukazatelem na data a druhym na dalsi prvek:
    typedef struct {
      char *radek;
      struct *radek;
    } radek;
    
    (ted si nejsem jisty syntaxi) a pak postupne pridavat prvky.. no a zpetne prochazeni taky bude horor... cili jednoducha funkce v C na to neexistuje, moznosti jsou: naprogramovat si to sam, pouzit C++ (asi nejlepsi volba) nebo pouzit nejaky script jazyk
    26.9.2003 12:44 Dušan Merta | skóre: 3 | Trnávka
    Rozbalit Rozbalit vše Pole retezcu v Cecku
    Pokud se pocet radku meni v prubehu behu programu, tak je opravdu nejlepsi zasobnik, ale pokud pocet radku neni znam v dobe komilace, ale pri behu se jednou urci, napriklad takto:
    printf("Zadej pocet radku: ");
    scanf("%d", &radky);
    
    tak pak muj priklad funguje, staci misto RADKY napsat radky:
    /* Alokace pole. */
      text=(char **) malloc(radky*sizeof(char *));
      for (i=0; i<radky; i++)
        text[i]=(char *) malloc(DELKA*sizeof(char));
    
    a je to jednodussi.
    BTW:
    typedef struct {
      char *retezec;
      radek *dalsi;
      radek *predchozi;
    } radek;
    
    Tohle resi docela dobre zpetne prochazeni a je to myslim dobre.
    26.9.2003 13:21 Maud Lebowski
    Rozbalit Rozbalit vše Pole retezcu v Cecku
    jo lze to libovolne komplikovat napriklad hledanim ve vyvazenych b stromech..:-) jinak me ale jste napadla jedna vec kterou pozuivam kdyz nejde o moc dat a hodi se s nima pracovat jako s polem (typicky zpracovani dat ve fortranu), pak lze pouzit pole tak, ze se nejprve naplni 2 prvky, kdyz to nestaci tak se 2 prekkopiruji do 4 prvkoveho pole, kdyz ani to ne, tak se prekopiruje 4 prvky a vytvori 16 atd... velmi sikovne a rychle, bohuzel trochu zrout pameti..:-), ale v tomto pripade, kdy by se alokovalo jen 4byte pole ukazatelu na stringy je to urcite lepsi nez se drbat se zasobnikem
    Josef Kufner avatar 26.9.2003 13:43 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Pole retezcu v Cecku
    typedef struct {
      char *retezec;
      radek *dalsi;
      radek *predchozi;
    } radek;
    
    
    by melo byt:
    
    
    typedef struct s_radek {
      char *retezec;
      struct s_radek *dalsi;
      struct s_radek *predchozi;
    } radek;
    
    Protoze radek neni tou dobou jeste deklarovan, ale struct s_radek jiz ano.
    Hello world ! Segmentation fault (core dumped)
    26.9.2003 14:06 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Pole retezcu v Cecku
    Stejně je to vynalezání kola... (tedy, na něčem se člověk to C naučit musí, že...) Ale když chci obousměrně linkované seznamy a všechny možné funkce s nimi operující, vystačím si s #include <glib.h> (stejně tak, když chci jednosměrné seznamy, hashe, stromy, resizující se pole, etc.)
    26.9.2003 12:13 sam
    Rozbalit Rozbalit vše Pole retezcu v Cecku
    pokial viem, v c-cku neexistuju datove typy, ktore by si sami regulovali velkost podla potreby. uz aj ten tvoj priklad je podla mna troska nepresny.

    ja by som to robil takto:
    char **p;
    p = (char **)malloc(pocet_riadkov * sizeof(char *));
    p[0] = (char *)malloc(velkost_retazca * sizeof(char));
    p[1] = (char *)malloc(velkost_retazca * sizeof(char));
    ...

    26.9.2003 13:00 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Pole retezcu v Cecku
    Neexistují je silné slovo, nejsou přímo součástí jazyka, nicméně vše lze doprogramovat ;-) několik takových struktur je třeba v glib. gcc umožňuje int foo(int n) { char *p[n]; ... }, ale standardní C bohužel ne. Jinak je třeba použít malloc/alloca...
    28.9.2003 12:12 ApoC
    Rozbalit Rozbalit vše Pole retezcu v Cecku
    A nebo v C++ pouzit vektor :o)
    28.9.2003 12:32 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Pole retezcu v Cecku
    A bude se to kompilovat půl hodiny... ;-)
    CIJOML avatar 28.9.2003 16:58 CIJOML | skóre: 58 | Praha
    Rozbalit Rozbalit vše Pole retezcu v Cecku
    A to vadi? Dulezita je konecna funkcnost
    28.9.2003 17:14 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Pole retezcu v Cecku
    Jo, vadí. Velké projekty v C++ se [s gcc] kompilují tak dlouho, že dřív umřeš, než něco vyvineš, takže na žádnou konečnou funkčnost nedojde... (a to i s ccache, protože preprocesování se tím nezbavíš, a než se načte pár STL hlaviček, můžeš si s klidem skočit na oběd).
    28.9.2003 17:25 Beda
    Rozbalit Rozbalit vše Pole retezcu v Cecku
    ... to jsem tak jednou kompiloval s g++ orbit a par veci okolo. no a dopadlo to tak, ze pro nedostatek pameti a swapu (dohromady >1G) to neuneslo par regulernich daemonu a byly odporouceny na smrt => g++ uz se uz nejmenuje g++ a g++ nedela to co se obvykle od g++ ocekava. vzivote uz si nelajznu kompilovat cokoliv v g++ na tom serveru (je desne nenazrany) a kdybych to omezil pod paricnou mez, tak by to stejne slitlo pri kompilaci, takze je to na $#%^@#

    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.