1. Лучший говнокод

    В номинации:
    За время:
  2. Си / Говнокод #17554

    +143

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    #include <stdio.h>
    
    int main(void)
    {
    	int d2[3][3][3];
    	int i,i2,i3;
    	for(i = 0; i <= 3; ++i)
    		for(i2 = 0; i2 <= 3; ++i2)
    			for(i3 = 0; i3 <= 3; ++i3)
    				d2[i][i2][i3]=5;
    	i=0,i2=0,i3=0;
    	for(i = 0; i <= 3; ++i)
    		for(i2 = 0; i2 <= 3; ++i2)
    			for(i3 = 0; i3 <= 3; ++i3)
    				printf("%d\n",d2[i][i2][i3]);
    	return 0;
    }

    играюсь я короче с массивом, этот код компилируется,все печатает но в конце Segmentation fault, почему?
    gcc -Wall -Wextra -Werror -Wpedantic -ftrapv -fwrapv -fdiagnostics-show-option -std=gnu11 -o "test" "test.c"

    pl7ofit, 01 Февраля 2015

    Комментарии (102)
  3. C++ / Говнокод #12806

    +20

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    int spectrumColor(float magn)
    {
    	if (magn != magn) return 0xFF000000;
    	if ((magn <= -FLT_MAX && magn >= FLT_MAX)) return 0xFF000000;
    	const float minRange = -95.0f;
    	if (magn > minRange && magn <= (minRange + 10.0f))
    		return blendColor(0, 0x00004f, (magn - minRange) / 10.0f);
    	if (magn > (minRange + 10.0f) && magn <= (minRange + 20.0f))
    		return blendColor(0x00004f, 0x50007b, (magn - (minRange + 10.0f)) / 10.0f);
    	if (magn > (minRange + 20.0f) && magn <= (minRange + 30.0f))
    		return blendColor(0x50007b, 0x990076, (magn - (minRange + 20.0f)) / 10.0f);
    	if (magn > (minRange + 30.0f) && magn <= (minRange + 40.0f))
    		return blendColor(0x990076, 0xd20040, (magn - (minRange + 30.0f)) / 10.0f);
    	if (magn > (minRange + 40.0f) && magn <= (minRange + 50.0f))
    		return blendColor(0xd20040, 0xf51f00, (magn - (minRange + 40.0f)) / 10.0f);
    	if (magn > (minRange + 50.0f) && magn <= (minRange + 60.0f))
    		return blendColor(0xf51f00, 0xffaa00, (magn - (minRange + 50.0f)) / 10.0f);
    	if (magn > (minRange + 60.0f) && magn <= (minRange + 70.0f))
    		return blendColor(0xffaa00, 0xfff966, (magn - (minRange + 60.0f)) / 10.0f);
    	if (magn > (minRange + 70.0f) && magn <= (minRange + 80.0f))
    		return blendColor(0xfff966, 0xffffff, (magn - (minRange + 70.0f)) / 10.0f);
    	if (magn < minRange) return 0xFF000000;
    	if (magn >= (minRange + 80.0f)) return 0xFFFFFFFF;
    	return 0xFF000000;
    }

    Вот так в одной говноподелке считается цвет столбцов спектра для визуализации аудио.

    just_nameless, 25 Марта 2013

    Комментарии (102)
  4. Java / Говнокод #11230

    +78

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    String result = "";
    
    for (Object obj : col) {
        if (obj instanceof String) {
            result += obj + SEPARATOR;
        } else {
            result += obj.toString() + SEPARATOR;
        }
    }
    					
    if (result.length() >= 2) {
        result = result.substring(0, result.length() - SEPARATOR.length());
    }

    instanceof String доставил.
    Кстати, к проекту подключены apache.commons.lang и guava, так что способов сделать join строк предостаточно.

    roman-kashitsyn, 19 Июня 2012

    Комментарии (102)
  5. C++ / Говнокод #3240

    +148

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    #define NAT unsigned int
    class Matrix {...};
    
    bool ortholin ( Matrix & a, const double * b, double * x )
    {
        const nat n = a.nRow;
        const nat m = a.nCol;
        // далее нигде не используется класс матрицы и идет Сишный код
    }
    
    bool ortholin ( nat n, nat m, const double * const * a, const double * b, double * x )
    {
        return ortholin ( Matrix ( n, m, a ), b, x );
    }

    Kornew, 16 Мая 2010

    Комментарии (102)
  6. Си / Говнокод #25399

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    // https://github.com/ghc/ghc/blob/e204431e5a5e2fd16da52b04bda2798f16c51344/rts/Interpreter.c#L1184
    
            case bci_PUSH8: {
                int off = BCO_NEXT;
                Sp_subB(1);
                *(StgWord8*)Sp = *(StgWord8*)(Sp_plusB(off+1));
                goto nextInsn;
            }
    
            case bci_PUSH16: {
                int off = BCO_NEXT;
                Sp_subB(2);
                *(StgWord16*)Sp = *(StgWord16*)(Sp_plusB(off+2));
                goto nextInsn;
            }
    
            case bci_PUSH32: {
                int off = BCO_NEXT;
                Sp_subB(4);
                *(StgWord32*)Sp = *(StgWord32*)(Sp_plusB(off+4));
                goto nextInsn;
            }
    
            case bci_PUSH8_W: {
                int off = BCO_NEXT;
                *(StgWord*)(Sp_minusW(1)) = *(StgWord8*)(Sp_plusB(off));
                Sp_subW(1);
                goto nextInsn;
            }
    
            case bci_PUSH16_W: {
                int off = BCO_NEXT;
                *(StgWord*)(Sp_minusW(1)) = *(StgWord16*)(Sp_plusB(off));
                Sp_subW(1);
                goto nextInsn;
            }
    
            case bci_PUSH32_W: {
                int off = BCO_NEXT;
                *(StgWord*)(Sp_minusW(1)) = *(StgWord32*)(Sp_plusB(off));
                Sp_subW(1);
                goto nextInsn;
            }

    https://ghc.haskell.org/trac/ghc/wiki/Commentary/Rts/Interpreter

    > The linker lives in rts/Linker.c and is responsible for handling runtime loading of code into a Haskell process. This is something of a big blob of unpleasant code, and see DynamicGhcPrograms for information about efforts to reduce our dependence on this linker.

    Итак, тут у нас стековая машина из хачкеля, которая вродекак отвечает за динамическую загрузку какого-то говна.

    j123123, 22 Февраля 2019

    Комментарии (101)
  7. PHP / Говнокод #25224

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    <?php
        function japanize($s) {
            $syl = array('н',
                'а','ка','са','та','на','ха','ма','я','ра','ва','га','дза','да','ба','па',
                'и','ки','си','ти','ни','хи','ми','и','ри',     'ги','дзи',     'би','пи',
                'у','ку','су','цу','ну','фу','му','ю','ру',     'гу','дзу',     'бу','пу',
                'э','кэ','сэ','тэ','нэ','хэ','мэ','е','рэ',     'гэ','дзэ','дэ','бэ','пэ',
                'о','ко','со','то','но','хо','мо','ё','ро','во','го','дзо','до','бо','по',
                    'кя','ся','тя','ня','хя','мя',    'ря',     'гя','дзя',     'бя','пя',
                    'кю','сю','тю','ню','хю','мю',    'рю',     'гю','дзю',     'бю','пю',
                    'кё','сё','тё','нё','хё','мё',    'рё',     'гё','дзё',     'бё','пё'
            );
            $modulo = count($syl);
            $parts = str_split(substr(sha1($s), 0, 16), 2);
            array_walk($parts, function(&$value, $key) use($syl, $modulo) {$value = $syl[intval($value, 16) % $modulo];});
            return implode('', $parts);
        }
         
        echo japanize('bormand') . PHP_EOL;

    Куд-кудах:
    https://ideone.com/l3WdCD

    nemyx, 26 Декабря 2018

    Комментарии (101)
  8. Куча / Говнокод #24806

    +2

    1. 1
    https://i.imgur.com/foJHCYt.jpg

    Новые винды теперь даже БСОД не могут полностью вывести полностью.
    Хотели сделать красивый нескучный bsod с грустным смайликом, а он теперь не выводится из-за всей этой красивости и нескучности. Оставили б старый bsod - была бы какая-то инфа о причинах самого бсода. Но зато тут теперь нескучный смайлик.

    То ли дело кернелпаник в прыщах, никаких тебе смайликов и чорная страшная консоль с непонятными циферками и буковками. Неюзерфрендли

    j123123, 24 Сентября 2018

    Комментарии (101)
  9. C++ / Говнокод #24612

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    #include <iostream>
    #include <string>
    
    int main()
    {
        std::string s1  = "";
        const char s2[] = "";
    
        std::cout << std::boolalpha
                  << std::empty(s1) << std::endl
                  << std::size(s1) << std::endl
                  << std::empty(s2) << std::endl
                  << std::size(s2) << std::endl;
    
        s1.assign("", 1);
        std::cout << std::empty(s1) << std::endl
                  << std::size(s1) << std::endl;
        system("pause");
        return 0;
    }

    true
    0
    false
    1
    false
    1


    Ой-вэй, абстракции потекли!

    gost, 11 Августа 2018

    Комментарии (101)
  10. PHP / Говнокод #23881

    0

    1. 1
    Дикого бомбежа пост

    Дикой боли стоила мне попытка собрать PHP 5.3 под Ubuntu 16.04 LTS. Клонирую репозиторий, делаю checkout на PHP 5.3, пытаюсь собрать по инструкции и тут БАЦ. autoconf и automake слишком новые. Благо были более старые версии, ставлю их через apt. И тут снова БАЦ. bison слишком новый. Пришлось скачивать исходники, компилировать их и потом уже ставить. И тут самое страшное: запустить PHP 5.3 под LAMP почти нереально. Меня всё это задолбало, сношу всё к чертям. И виноват отнюдь не PHP. Виноваты сами Томпсон, Ритчи, Линус и прочие петросяны всея вселенной *nix. Именно благодаря ним есть необходимость ставить по пять автоконфов, но не возможности.

    dm_fomenok, 06 Марта 2018

    Комментарии (101)
  11. Куча / Говнокод #23642

    0

    1. 1
    Давайте обсудим meltdown и spectre.

    Объясните мне кто-нибудь, в чем принципиальное отличие spectre от meltdown? И как оно позволяет читать память других процессов? Все что я пока понял - это чтение памяти ядра, которое уже все прикрыли, и проблемы с жс в браузере.

    FrauSchweinhund, 06 Января 2018

    Комментарии (101)