- 1
- 2
char buf[4096];
*((char*)&buf[14]) = 0x30;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+101
char buf[4096];
*((char*)&buf[14]) = 0x30;
Запись значения в массив (такой способ обращения к элементу массива тщательно соблюдается на протяжении всех 25000 строк кода проекта)
+141
/* The DNS spec is officially case-insensitive, but for those times when you
*really* wanna see any and all discrepancies, by all means define this. */
#ifdef ANAL
if (strcmp (poop->name, hp->h_name) != 0) { /* case-sensitive */
#else
if (strcasecmp (poop->name, hp->h_name) != 0) { /* normal */
#endif
Из первой версии netcat'а.
+138
if (r_ptr->flags1 & (RF1_FEMALE)) my_strcpy(desc, "себя", max);
else if (r_ptr->flags1 & (RF1_MALE)) my_strcpy(desc, "себя", max);
else my_strcpy(desc, "себя", max);
Может, я чего-то не понимаю?
+140
GNET::ChatBroadCast::~ChatBroadCast(&cbc);
}
else if ( v9 > 9 && v9 == 14 )
{
v4 = this->roleid;
Декомпилил тут игруху, а там такое в псевдокоде.
+143
char value[60] = {0};
int data;
snprintf(value, sizeof(value-1), "|%7u\n", data);
coverity полагал что заменить sprintf на snprintf было бы безопаснее
+145
char bStr[1000];
strncpy(bStr, " [\0", strlen(" [\0"));
Потому что в man:
Warning: If there is no null byte among the first n bytes of src, the string placed in dest will not be null terminated.
+142
#define PHYSICAL unsigned long
#define VIRTUAL unsigned long
прикольное legacy
+133
int main(void)
{
int a=0,b=1000;
int * p;
p=malloc(sizeof(int)*b-7); // уменьшаем выделяемую память на 7 байт, а почему оно не падает?
for(;a<b;a++) p[a]=a;
printf("%lu",sizeof(int)*b);
free(p);
}
а если убрать 8 байт то уже падает,что-то где-то округляется что-ли?
+109
memcpy (stderr, stdout, sizeof (FILE));
+143
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
unsigned int board[4][4];
void firstblood(); void drawboard(); int turn(); void changeup(); void changedown(); void changeleft(); void changeright(); int numbofpos(); void gameover();
int pow2 ( int n ) { return 1<<n; }
int main ()
{ do{ firstblood(); drawboard(); while ( turn() ); puts("New game? (y,n)"); fflush(stdin); char c=getchar(); if (c!='y') return 0; for (int i=0;i<4;i++) for (int j=0;j<4;j++) board[i][j]=0; } while (1);
}
void firstblood()
{ srand((unsigned int)time); board[rand()%4][rand()%4]=pow2(rand()%3+1); board[rand()%4][rand()%4]=pow2(rand()%4+1); }
void drawboard ()
{ system("CLS"); puts(" 2048 "); int i,j; for (i=0;i<4;i++, printf("\n\n") ) for (j=0;j<4;j++) printf("%5u",board[i][j]); puts("\nw,a,s,d and r to move and new game");
}
int numbofpos()
{ int i,j,n=0; for (i=1;i<4;i++ for (j=0;j<4;j++){if (board[i][j] && board[i][j]==board[i-1][j]) n++; if (board[j][i] && board[j][i]==board[j][i-1]) n++; }for (i=0;i<4;i++) for (j=0;j<4;j++) if (!board[i][j]) n++;
return n ;
}
void gameover()
{
system("CLS"); puts(" 2048 "); int i,j; for (i=0;i<4;i++, printf("\n\n") ) for (j=0;j<4;j++) printf("%5u",board[i][j]); puts("\n Game over ");
}
int turn()
{
char c=getchar(); int i,j,n=0, nulls[16][2];
switch(c)
{ case 'w' : changeup(); break;
case 'a' : changeleft(); break;
case 's' : changedown(); break;
case 'd' : changeright(); break;
case 'r' : return 0;
}
for (i=0;i<4;i++)
for (j=0;j<4;j++)
if ( !board[i][j] ) { nulls[n][0]=i; nulls[n++][1]=j; }
if (n)
{
int t=rand()%n;
board[ nulls[t][0] ][ nulls[t][1] ] = pow2(rand()%2+1);
}
if ( !numbofpos() )
{ gameover(); return 0; }
drawboard();
return 1;
}
void changeleft()
{
int i,j,k;
for (i=0;i<4;i++)
{
int f= ( !board[i][3] )?0:1 ;
for (j=2;j>=0;j--)
{ if (board[i][j] && !f) f=1;
if (!board[i][j] && f==1) { for (k=j+1;k<4;board[i][k-1]=board[i][k],k++); board[i][3]=0; }
}
for (j=0;j<3;j++)
if ( board[i][j] && board[i][j]==board[i][j+1])
{
board[i][j] *= 2;
for (k=j+1;k<3; board[i][k]=board[i][k+1], k++ );
board[i][3]=0;
}
}
}
void changeright()
{
int i,j,k;
for (i=0;i<4;i++)
{
int f= ( !board[i][0] )?0:1 ;
for (j=1;j<4;j++)
{ if (board[i][j] && !f) f=1;
if (!board[i][j] && f==1) { for (k=j;k>0;board[i][k]=board[i][k-1],k--); board[i][0]=0; }
}
for (j=3;j>0;j--)
if ( board[i][j] && board[i][j]==board[i][j-1])
{
board[i][j] *= 2;
for (k=j-1;k>0; board[i][k]=board[i][k-1], k-- );
board[i][0]=0;
}
}
}
void changeup()
{ int i,j,k; for (i=0;i<4;i++) { int f= ( !board[3][i] )?0:1 ; for (j=2;j>=0;j--) { if (board[j][i] && !f) f=1; if (!board[j][i] && f==1) { for (k=j+1;k<4;board[k-1][i]=board[k][i],k++); board[3][i]=0; } }
for (j=0;j<3;j++) if ( board[j][i] && board[j][i]==board[j+1][i]) {board[j][i] *= 2; for (k=j+1;k<3; board[k][i]=board[k+1][i], k++ ); board[3][i]=0; }}}
void changedown()
{int i,j,k; for (i=0;i<4;i++) { int f= ( !board[0][i] )?0:1 ; for (j=1;j<4;j++) { if (board[j][i] && !f) f=1; if (!board[j][i] && f==1) { for (k=j;k>0;board[k][i]=board[k-1][i],k--); board[0][i]=0; } } for (j=3;j>0;j--) if ( board[j][i] && board[j][i]==board[j-1][i]) board[j][i] *= 2;
for (k=j-1;k>0; board[k][i]=board[k-1][i], k-- ); board[0][i]=0;
} }}
2048 только с библиотеками stdio.h, stdlib.h (srand,rand) и time.h (тоже для рандома)
Пожалуйста, уберите ограничение в 100 строк