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 22:22 | Komunita

Dle plánu byl měl Debian 9 s kódovým názvem Stretch vyjít v sobotu 17. června. Po celém světě se začínají plánovat Release Parties. Oznámeno bylo vydání čtvrté RC (release candidate) verze instalátoru pro Debian 9 Stretch.

Ladislav Hagara | Komentářů: 2
26.5. 22:22 | Komunita

V Norimberku probíhá do neděle 28. května openSUSE Conference 2017. Na programu je celá řada zajímavých přednášek. Sledovat je lze online. K dispozici jsou také videozáznamy (YouTube) již proběhnuvších přednášek. Dění lze sledovat na Twitteru.

Ladislav Hagara | Komentářů: 0
26.5. 11:33 | IT novinky

Red Hat kupuje společnost Codenvy stojící za stejnojmenným webovým (cloudovým) integrovaným vývojovým prostředím (WIDE) postaveném na Eclipse Che.

Ladislav Hagara | Komentářů: 0
26.5. 08:55 | Nová verze

V listopadu 2014 byl představen fork Debianu bez systemd pojmenovaný Devuan. Po dva a půl roce jeho vývojáři oznámili vydání první stabilní verze 1.0. Jedná se o verzi s dlouhodobou podporou (LTS) a její kódové jméno je Jessie, podle planetky s katalogovým číslem 10 464.

Ladislav Hagara | Komentářů: 10
25.5. 20:22 | Zajímavý článek

Nadace Raspberry Pi vydala již osmapadesáté číslo (pdf) stostránkového anglicky psaného časopisu MagPi věnovanému Raspberry Pi a projektům postaveným na tomto jednodeskovém počítači a druhé číslo (pdf) časopisu Hello World primárně určeného pro učitele informatiky a výpočetní techniky.

Ladislav Hagara | Komentářů: 0
25.5. 19:55 | Humor

Portál Stack Overflow informuje na svém blogu, že pomohl ukončit editor Vim už více než milionu vývojářů. V loňském roce například hledal odpověď na otázku Jak ukončit editor Vim v průměru 1 z 20 000 návštěvníků.

Ladislav Hagara | Komentářů: 10
25.5. 19:22 | Nová verze

Po pěti měsících od vydání verze 3.5.0 byla vydána nová stabilní verze 3.6.0, tj. první z nové řady 3.6, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie). Z novinek lze zmínit například podporu dvou nových 64bitových platforem little-endian POWER machines (ppc64le) a IBM z Systems (s390x) nebo nové balíčky Rust 1.17.0, Cargo 0.18.0, GHC 8.0.2 a Julia 0.5.2.

Ladislav Hagara | Komentářů: 0
24.5. 21:33 | Bezpečnostní upozornění

V Sambě byla nalezena a opravena bezpečnostní chyba CVE-2017-7494. Má-li útočník právo ukládat soubory na vzdálený server, může tam uložit připravenou sdílenou knihovnu a přinutit smbd server k jejímu načtení a tím pádem ke spuštění libovolných příkazů. Chyba je opravena v upstream verzích 4.6.4, 4.5.10 a 4.4.14. Chyba se týká všech verzí Samby od verze 3.5.0 vydané 1. března 2010.

Ladislav Hagara | Komentářů: 7
24.5. 20:44 | Nová verze

Byla vydána nová stabilní verze 4.3.0 integrovaného vývojového prostředí (IDE) Qt Creator. Z novinek lze zmínit například integraci editoru kódu do Qt Quick Designeru.

Ladislav Hagara | Komentářů: 1
24.5. 20:11 | Bezpečnostní upozornění

Společnost Check Point informuje na svém blogu o novém vektoru útoku. Pomocí titulků lze útočit na multimediální přehrávače VLC, Kodi, Popcorn Time, Stremio a pravděpodobně i další. Otevření útočníkem připraveného souboru s titulky v neaktualizovaném multimediálním přehrávači může vést ke spuštění libovolných příkazů pod právy uživatele. Ukázka na YouTube. Chyba je opravena v Kodi 17.2 nebo ve VLC 2.2.6.

Ladislav Hagara | Komentářů: 14
Chystáte se pořídit CPU AMD Ryzen?
 (6%)
 (33%)
 (1%)
 (8%)
 (44%)
 (9%)
Celkem 629 hlasů
 Komentářů: 62, poslední 19.5. 01:57
    Rozcestník

    Dotaz: Pole retezcu v Cecku

    26.9.2003 10:51 Tom
    Pole retezcu v Cecku
    Přečteno: 1885×
    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.