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

    Open source webový aplikační framework Django slaví 20. narozeniny.

    Ladislav Hagara | Komentářů: 0
    dnes 16:11 | Komunita

    V Brestu dnes začala konference vývojářů a uživatelů linuxové distribuce Debian DebConf25. Na programu je řada zajímavých přednášek. Sledovat je lze online.

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

    Před 30 lety, tj. 14. července 1995, se začala používat přípona .mp3 pro soubory s hudbou komprimovanou pomocí MPEG-2 Audio Layer 3.

    Ladislav Hagara | Komentářů: 14
    dnes 10:55 | IT novinky

    Výroba 8bitových domácích počítačů Commodore 64 byla ukončena v dubnu 1994. Po více než 30 letech byl představen nový oficiální Commodore 64 Ultimate (YouTube). S deskou postavenou na FPGA. Ve 3 edicích v ceně od 299 dolarů a plánovaným dodáním v říjnu a listopadu letošního roku.

    Ladislav Hagara | Komentářů: 16
    včera 17:55 | Zajímavý projekt

    Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila open source robota Reachy Mini (YouTube). Předobjednat lze lite verzi za 299 dolarů a wireless verzi s Raspberry Pi 5 za 449 dolarů.

    Ladislav Hagara | Komentářů: 11
    11.7. 16:44 | Komunita

    Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.

    Ladislav Hagara | Komentářů: 3
    11.7. 14:55 | Humor

    McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.

    Ladislav Hagara | Komentářů: 16
    11.7. 00:11 | Nová verze

    Byla vydána (𝕏) červnová aktualizace aneb nová verze 1.102 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.102 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

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

    Byla vydána nová verze 2.4.64 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 8 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 4
    10.7. 15:22 | Nová verze

    Společnost xAI na síti 𝕏 představila Grok 4, tj. novou verzi svého AI LLM modelu Grok.

    Ladislav Hagara | Komentářů: 12
    Jaký je váš oblíbený skriptovací jazyk?
     (59%)
     (26%)
     (7%)
     (3%)
     (1%)
     (1%)
     (4%)
    Celkem 393 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník

    Dotaz: FOR cyklus v CECKU

    26.3.2009 11:48 Nicoolas_Doe
    FOR cyklus v CECKU
    Přečteno: 454×
    Muze mi nekdo vysvetlit, proc mi blbne forcyklus v nasledujici funkci? Funkce má vypsat na obrazovku nejdelsi pravy palindrom. Pr.: pro slovo "abcana", ma nejdelsi pravy palindrom je "ana" (pointer je 3). Funkce palindrom(char *text) vraci 0, pokud je retezec palindrom, jinak vraci 1. Pokud napisi funkci jak je o par radku niz, tak vsechno funguje jak chci. Ale pokud umazu rádek printf("Zkusebni vypis %s.\n",&text[i]); (kterej vubec nechci), tak je vysledek "a" (pointer je 5)

    int pravyPalindrom(char *text) { int i,pointer; for(i = 0; text[i] != '\0'; i++) { printf("Zkusebni vypis %s.\n",&text[i]); if (palindrom(&text[i]) == 0) { pointer = i; break; } } printf("Nejdelsi pravy palindrom je %s.\n",&text[pointer]);

    return (0); }

    Odpovědi

    26.3.2009 12:20 volca
    Rozbalit Rozbalit vše Re: FOR cyklus v CECKU

    Nevidim jinou moznost nez je chyba ve funkci palindrom. Ten zminovany kousek kodu s mym doplnenim chodi

    26.3.2009 12:26 Nicoolas_Doe
    Rozbalit Rozbalit vše Re: FOR cyklus v CECKU
    Ta funkce me funguje spravne. Jde ti to i bez toho radku s tim printf("Zkusebni vypis %s.\n",&text[i]); ?

    /*Funkce pro testovani, zda je retezec, prefiltrovany funkci isalpha, palindrom. Pokud je retezec patricny palindrom, funkce vraci 0, jinak 1.*/

    int palindrom(char *text) { int i,del; int delka = strlen(text); //delka vstupniho retezce char retez[delka]; //promenna pro prefiltrovany vstupni retezec /*Prefiltruje vstupni retezec funkci isalpha a vysledek ulozi do promenne retezec*/ for(i = 0; text[i] != '\0'; i++) { if (isalpha((int)text[i])) { del = strlen(retez); retez[del]=text[i]; retez[del+1]=0; } } /*Zjistuje, zda retez je palindrom */ for(i = 0; i != (strlen(retez)/2); i++) { if (retez[i] != retez[strlen(retez) -1 - i]) return(1); }

    return (0); }
    26.3.2009 12:33 volca
    Rozbalit Rozbalit vše Re: FOR cyklus v CECKU

    Chodi to bez toho filtru?

     

    Kam ukazuje "retez"? Asi by bylo vhodne ho pokazde alespon zinicializovat retez[0] = '\0'; Takhle to chodit nebude, bo tam bude odpad odminula

    26.3.2009 12:49 volca
    Rozbalit Rozbalit vše Re: FOR cyklus v CECKU

    A uz vidim - jak to neni formatovane ztratil se v komentari. Promene vzdy pred pouzitim inicializuj, jinak nevis s cim mas tu cest.

    26.3.2009 12:27 Nicoolas_Doe
    Rozbalit Rozbalit vše Re: FOR cyklus v CECKU
    Sorry za to radkovani...
    26.3.2009 13:07 Nicoolas_Doe
    Rozbalit Rozbalit vše Re: FOR cyklus v CECKU
    Příloha:
    Zkusil jsem vykuchat z celyho kodu vsechno zbytecny,takze to ted mozna bude vypadat, ze je to k nicemu. Ale jde mi o to, aby se na vystup vypsalo "Nejdelsi pravy palindrom je ana."
    26.3.2009 13:10 volca
    Rozbalit Rozbalit vše Re: FOR cyklus v CECKU

    zopakuju to jeste jednou :)

     

    Promene vzdy pred pouzitim inicializuj, jinak nevis s cim mas tu cest.

     

    proste, a sproste:

    char retez[delka];

    retez[0] = '\0';

    26.3.2009 13:15 Nicoolas_Doe
    Rozbalit Rozbalit vše Re: FOR cyklus v CECKU
    To nepomohlo:(
    26.3.2009 13:18 Nicoolas_Doe
    Rozbalit Rozbalit vše Re: FOR cyklus v CECKU
    Tak promin, pomohlo...Mel jsi pravdu, chyba ve funkci palindrom. Moc dekuji za pomoc.
    26.3.2009 13:22 volca
    Rozbalit Rozbalit vše Re: FOR cyklus v CECKU

    Nejni zac :)

     

    Jinak vysvetleni je proste - to pole bylo alokovano na stacku (coz nerozhoduje, ono malloc by to udelal stejne). Stack se necisti pri vytvareni promennych, protoze je to drahe (a jazyk obecne nemuze tusit co za hodnotu autor zamyslel mit v te promenne jako vychozi). Pomocny printf tam na stack zrejme zapisoval nulu, coz !nahodou! zpusobilo ze to pracovalo. Tohle je rek bych tipicka ukazka chyby kterou (kdyby to nahodou fungovalo vzdy, a nebyla by odhalena) by nekdo mohl exploitem zneuzit.

     

    Valgrind by tuhle chybu odhalil, doporucuju ho nastudovat a vyzkouset.

    26.3.2009 13:26 Sinuhet | skóre: 31
    Rozbalit Rozbalit vše Re: FOR cyklus v CECKU
    Příloha:
    Ono tam toho bylo vic...
    26.3.2009 13:50 Nicoolas_Doe
    Rozbalit Rozbalit vše Re: FOR cyklus v CECKU
    Myslis vic chyb? K cemu je ten Valgrind?
    27.3.2009 08:48 volca
    Rozbalit Rozbalit vše Re: FOR cyklus v CECKU

    Vsak si srovnej jeho verzi s tou svoji :)

     

    Valgrind je nastroj na (mimo jine) sledovani chyb prace s pameti - odhali ze kod pracuje s neinicializovanou pameti, uvolnenou pameti, mimo rozsah dany alokaci, atd.

    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.