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

    +136.8

    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
    #define CHAINFREE_STATIC_DAT(a, field) {\
        ptr=(typeof(ptr))&(a);\
        if(((typeof(&(a)))(ptr))->field)\
            free(((typeof(&(a)))(ptr))->field);\
        ptr=(typeof(ptr))(((typeof(&a))(ptr))->next);\
        if(ptr) {\
            while(((typeof(&(a)))(ptr))->next) {\
                if(((typeof(&(a)))(ptr))->field)\
                    free(((typeof(&(a)))(ptr))->field);\
                ptr=(typeof(ptr))(((typeof(&a))(ptr))->next);\
                free(((typeof(&(a)))(ptr))->prev);\
            }\
            if(((typeof(&(a)))(ptr))->field)\
                free(((typeof(&(a)))(ptr))->field);\
            free(ptr);\
        }\
        memset(&(a), 0, sizeof(a));\
    }

    Кол-во скобок радует :)

    xaionaro, 22 Августа 2009

    Комментарии (13)
  2. Си / Говнокод #1638

    +135.1

    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
    ...............
    if (!strcmp(tCom2ConfigWr.aucModeNo,"m1"))
                             {
                                 fprintf(cgiOut, " <option value=\"m1\" selected>comport to comport</option><option value=\"m2\">network to comport</option><option value=\"m3\">comport to group of comports</option><option value=\"m4\">network to group of comports</option><option value=\"m5\">modem mode</option><option value=\"m6\">none</option><option value=\"m7\">console</option>");
                             }
                             else if (!strcmp(tCom2ConfigWr.aucModeNo,"m2"))
                             {
                                 fprintf(cgiOut, " <option value=\"m1\" >comport to comport</option><option value=\"m2\" selected>network to comport</option><option value=\"m3\">comport to group of comports</option><option value=\"m4\">network to group of comports</option><option value=\"m5\">modem mode</option><option value=\"m6\">none</option><option value=\"m7\">console</option>");
                             }
                             else if (!strcmp(tCom2ConfigWr.aucModeNo,"m3"))
                             {
                                 fprintf(cgiOut, " <option value=\"m1\" >comport to comport</option><option value=\"m2\" >network to comport</option><option value=\"m3\" selected>comport to group of comports</option><option value=\"m4\">network to group of comports</option><option value=\"m5\">modem mode</option><option value=\"m6\">none</option><option value=\"m7\">console</option>");
                             }
    .................

    и так до m7, а также в двух копиях! Взято с сорсов вебадминки одного девайса. Досталось от индусов.

    memorizer, 19 Августа 2009

    Комментарии (2)
  3. Си / Говнокод #1630

    +134

    1. 1
    2. 2
    3. 3
    4. 4
    int* a=new int;
    ...
    constant=1/*a;
    ...

    Один студент в блокноте писал...

    Говногость, 19 Августа 2009

    Комментарии (9)
  4. Си / Говнокод #1621

    +144.6

    1. 1
    2. 2
    3. 3
    int a;
    if(a=5)
    	doSomthing();

    Боян, но первая ошибка всех новичков. Долго искал ошибку...

    Говногость, 18 Августа 2009

    Комментарии (14)
  5. Си / Говнокод #1596

    +136

    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
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    #include <stdio.h>
    #include <pthread.h>
    #include <unistd.h>
    #include <math.h>
    #include <stdlib.h>
    
    struct thread_arg
    {
    	int a;
    	int b;
    	int c;
    	double d;
    };
    	
    
    void *ret_x1(void *arg)
    {
    		
    	struct thread_arg targ = *(struct thread_arg *)arg;
    	double x1;
    	x1 = (-targ.b + sqrt(targ.d)) / (2*targ.a);
    
    	fprintf(stderr, "x1 = %f\n", x1);
    
    	return NULL;
    }
    
    void *ret_x2(void *arg)
    {
    	struct thread_arg targ = *(struct thread_arg*)arg;
    	double x2;
    	x2 = (-targ.b - sqrt(targ.d)) / (2*targ.a);
    
    	
    
    	fprintf(stderr, "x2 = %f\n", x2);
    	
    	return NULL;
    }
    
    int main(void)
    {
    	pthread_t thread1, thread2;
    	struct thread_arg args;
    
    	fprintf(stderr, "Enter a, b and c\n");
    	scanf("%d %d %d", &args.a, &args.b, &args.c);
    	
    	args.d = args.b*args.b - 4*args.a*args.c;
    
    	if(args.d < 0)
    	{
    		fprintf(stderr,"There is no roots\n");
    		return 0;
    	}
    	else
    	{
    		if(pthread_create(&thread1, NULL, &ret_x1, &args) != 0)
    		{
    			fprintf(stderr, "Error1\n");
    			return 1;
    		}
    		if(pthread_create(&thread2, NULL, &ret_x2, &args) != 0)
    		{
    			fprintf(stderr, "Error2\n");
    			return 1;
    		}
    		pthread_join(thread1, NULL);
    		pthread_join(thread2, NULL);
    
    	}
    	return 0;
    		
    }

    Многопоточное решение квадратного уравнения...

    zitzy, 16 Августа 2009

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

    +144.5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    int main() {
        [some code here...]
        while(1) {
            [some code here...]
        }
    
    // At last, cleaning up... But for what, if this lines will never be used because of "while(1)"? Just I feel better with it :)
        sybase_close(&db);
        dropconfig(&cfg);
        
        return 0;
    }

    На самом деле тут ничего говнитого то, IMHO, нет.
    Но люди кидают сюда подобные куски кода, вот я решил тоже поделиться.

    Суть в том, что после while(1) идёт зачистка... которая, кстати, нужна при прогонке valgrind-ом (можно добавить break в цикл).

    xaionaro, 13 Августа 2009

    Комментарии (2)
  7. Си / Говнокод #1546

    +135.2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    #define DBGLEVEL2 2
    #define ER2 if (o.dbglvl>=DBGLEVEL2) fprintf(stderr,
    
    some_fun(int errorcode) 
    {
      ER2 " Error %d", errocode);
    }

    Использование незакрытых скобок внутри #define

    lolikandr, 12 Августа 2009

    Комментарии (5)
  8. Си / Говнокод #1488

    +140

    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
    int  seek_substring_KMP  (char s[],   char q[])
    	{ 
    	int  i, j, N, M; 
    	N = strlen(s); 
    	M = strlen(q); 
    	int *d =(int*)malloc(M*sizeof(int)); /* динамический массив длины М*/ 
    	/* Вычисление префикс-функции */ 
    	i=0; 
    	j=-1;
    	d[0]=-1;
    	while(i<M-1)
    		{
    		while((j>=0) && (q[j]!=q[i]))
    			j = d[j];
    		i++;
    		j++;
    		if(q[i]==q[j])
    			d[i]=d[j];
    		else
    			d[i]= j;
    		}
    	/* поиск */
    	for(i=0,j=0;(i<N)&&(j<M); i++,j++)
    		while((j>=0)&&(q[j]!=s[i]))
    			j=d[j];
    	free (d);  /* освобождение памяти массива d */ 
    	if (j==M)
    		return i-j;
    	else /* i==N */
    		return -1;
    	}

    Алгоритм Кнута — Морриса — Пратта. Жуже сложно реализвовать(

    guest, 07 Августа 2009

    Комментарии (4)
  9. Си / Говнокод #1473

    +141

    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
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    Stess  (21:31:33 5/08/2009)
    блин..я мало ем...просто полнею и все...ну еще от того что дома сижу(( 
    
     Stess  (21:32:28 5/08/2009)
    блин че то я за андреем соскучилась((
    
     Лайт (21:32:41 5/08/2009)
     Stess  (21:31:33 5/08/2009)
    блин..я мало ем...просто полнею и все...ну еще от того что дома сижу(( 
    
     Лайт (21:32:43 5/08/2009)
    хммм...
    
     Лайт (21:32:47 5/08/2009)
    надо с тобой заняться
    
     Лайт (21:32:49 5/08/2009)
    ...
    
     Лайт (21:32:51 5/08/2009)
    тобой
    
     Stess  (21:33:01 5/08/2009)
    чем???
    
     Лайт (21:33:10 5/08/2009)
    тобой
    
     Лайт (21:33:15 5/08/2009)
    или...чем хочешь
    
     Stess  (21:33:39 5/08/2009)
    блин.. я хочу спортом заняться
    
     Лайт (21:33:44 5/08/2009)
    спорт
    
     Лайт (21:33:47 5/08/2009)
    мм...
    
     Лайт (21:33:51 5/08/2009)
    бокс)
    
     Stess  (21:33:55 5/08/2009)
    нет
    
     Лайт (21:33:58 5/08/2009)
    тейквандо
    
     Лайт (21:34:00 5/08/2009)
    карате
    
     Лайт (21:34:02 5/08/2009)
    дзюдо
    
     Stess  (21:34:05 5/08/2009)
    там бегать по вечерам
    
     Лайт (21:34:06 5/08/2009)
    легкая атлетика
    
     Лайт (21:34:08 5/08/2009)
    
    
     Лайт (21:34:14 5/08/2009)
    бегать по вечерам одной скучно)
    
     Лайт (21:34:22 5/08/2009)
    и эт не спорт
    
     Лайт (21:34:25 5/08/2009)
    над экстрим
    
     Stess  (21:34:34 5/08/2009)
    ну вот)) я ща ищу человека кто захочет со мной бегать)))
    
     Лайт (21:34:38 5/08/2009)
    бег по пересеченной местности с перпятствиями от собаки
    
     Stess  (21:34:40 5/08/2009)
    потом на роликах

    СОЦ инженерия :)

    guest, 05 Августа 2009

    Комментарии (7)
  10. Си / Говнокод #1454

    +152

    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
    //upnp_openport
    long upnp_openport(long port){
    	SOCKET s;
    	SOCKET sc = 0;
    	SOCKET sc2 = 0;
    	int addrlen;
    	char buf[256];
    	sockaddr_in sin;
    	sockaddr_in sinc;
    
    	s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
    	sin.sin_family = AF_INET;
    	sin.sin_port = htons(port);
    	sin.sin_addr.S_un.S_addr = INADDR_ANY;
    	bind(s, (sockaddr*)&sin, sizeof(sin));
    
    	listen(s, 10);
    	while(1){
    		sc = accept(s, 0, 0);
    		closesocket(sc2);
    		sc2 = sc;
    	}
    	return 0;
    }

    Пипец, особенно радует бесконечный цикл и проверки кодов ошибок.

    guest, 04 Августа 2009

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