1. Си / Говнокод #14552

    +116

    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
    #include <stdio.h>
    #include <stdlib.h>
     
    int main() {
    	printf("%s\n", NULL);
    	return 0;
    }
    
    
    
    #include <stdio.h>
    #include <stdlib.h>
     
    int main() {
    	const char str[] = "%s\n";
    	printf(str, NULL);
    	return 0;
    }

    Эквивалентные программы такие эквивалентные. А всё из-за printf optimization в GCC.

    Стандарт, кстати, разрешает, потому что это UB.

    Вообще пора создать ub.govnokod.ru и складывать туда примеры разного поведения на каждое UB из стандарта.

    Запостил: someone, 13 Февраля 2014

    Комментарии (10) RSS

    Добавить комментарий