- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
#include <stdio.h>
int main(void)
{
int a = a;
printf("%d", a);
return 0;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
#include <stdio.h>
int main(void)
{
int a = a;
printf("%d", a);
return 0;
}
Убрал ворнинг. Проверь.
https://tio.run/##S9ZNT07@/185My85pzQlVcGmuCQlM18vw46LKzOvRCE3MTNPoyw/M0WTq5pLAQhAgokKtgqJ1mBuQRFQIE1DSTVFSUchURMiWJRaUlqUp2BgzVXL9f//v@S0nMT04v@64Yk5OQA
+1
// https://github.com/CVC4/CVC4/blob/14b9dbaa0c9e8dce52d1a28595dc1cc80756abed/src/expr/pickler.cpp
static Block mkBlockBody4Chars(char a, char b, char c, char d) {
Block newBody;
newBody.d_body.d_data = (a << 24) | (b << 16) | (c << 8) | d;
return newBody;
}
static char getCharBlockBody(BlockBody body, int i) {
Assert(0 <= i && i <= 3);
switch(i) {
case 0: return (body.d_data & 0xff000000) >> 24;
case 1: return (body.d_data & 0x00ff0000) >> 16;
case 2: return (body.d_data & 0x0000ff00) >> 8;
case 3: return (body.d_data & 0x000000ff);
default:
Unreachable();
}
return '\0';
}
// ...
void PicklerPrivate::toCaseString(Kind k, const std::string& s) {
d_current << mkConstantHeader(k, s.size());
unsigned size = s.size();
unsigned i;
for(i = 0; i + 4 <= size; i += 4) {
d_current << mkBlockBody4Chars(s[i + 0], s[i + 1],s[i + 2], s[i + 3]);
}
switch(size % 4) {
case 0: break;
case 1: d_current << mkBlockBody4Chars(s[i + 0], '\0','\0', '\0'); break;
case 2: d_current << mkBlockBody4Chars(s[i + 0], s[i + 1], '\0', '\0'); break;
case 3: d_current << mkBlockBody4Chars(s[i + 0], s[i + 1],s[i + 2], '\0'); break;
default:
Unreachable();
}
}
Очередное переизобретение какой-то байтоебской поеботы типа ntohl(). И вообще, тут UB.
+2
/*
x86-64 clang (trunk) -O3
https://godbolt.org/z/t8NDGG
#include <inttypes.h>
uint32_t saturation_add(uint32_t a, uint32_t b)
{
const uint64_t tmp = (uint64_t)a + b;
if (tmp > UINT32_MAX)
{
return UINT32_MAX;
}
return tmp;
}
*/
saturation_add:
mov edx, esi
mov eax, edi
add edi, esi
add rax, rdx
mov edx, 4294967295
cmp rax, rdx
mov eax, -1 // ЗАЧЕМ???
cmovbe eax, edi
ret
https://en.wikipedia.org/wiki/Saturation_arithmetic
Почему компиляторы до сих пор такое говно
+4
typedef void proc();
proc nop{}
void swap(int *a, int *b) {*a^=*b^=*a^=*b;}
void sort_(int *arr, unsigned len)
{
(proc*[]){nop, swap}[*arr > arr[1]](arr, arr+1);
(proc*[]){nop, sort_}[len > 2](arr+1, len-1);
}
void sort(int *arr, unsigned len)
{
(proc*[]){sort_, nop}[len <= 1](arr, len);
(proc*[]){nop, sort}[len > 2](arr, len-1);
}
По поводу апнутого #19105.
Ветвление легко имитируеься массивом функий, цикол —– рукурсией. Получилось даже короче и понятнее чем обычный код.
0
http://codeforces.com/blog/entry/61248
−77
program LeakMem;
uses sysutils;
var
str:string;
...
В седьмой делфе утекает память.
+5
std::string cmd = "some command";
Socket.Write( cmd.c_str(), strlen( cmd.c_str() ) );
сишные плюсЫ
+1
<?php
if(!isset($_GET['conn'])) { $conn = "yes";}
else {$conn = $_GET['conn'];}
if(!isset($_GET['kat'])) { $kat = $kateg[0];}
else {$kat = $_GET['kat'];}
if(!isset($_GET['start'])) $start = 0;
else $start = $_GET['start'];
if(isset($_GET['torgi_id'])) $torgi_id = $_GET['torgi_id'];
// Устанавливаем соединение с базой данныъ
require_once("../config.php");
// Формируем и выполянем SQL-запрос на удаление записи в таблице users
$query = "DELETE FROM torgi
WHERE torgi_id=".$_GET['torgi_id'];
mysql_query($query);
$query = "DELETE FROM news
WHERE torgi_id=".$_GET['torgi_id'];
if(mysql_query($query))
{
// Осуществляем автоматический переход на страницу администрирования
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php?conn=$conn&kat=$kat&start=$start'>
</HEAD>";
}
else puterror("Ошибка при обращении к таблице документов");
?>
в целом весь проект состоит из одних Injection. На последок автор демонстриует оригинальный редирект.
Проект очень известный и этот код до сих пор крутится в бою)
+84
int size = delete.count();
for (int i = 1; i < (size + 1); i++) {
deleteDelegation(i);
i--;
if (i == 0) break;
}
Задание: надо удалить все делегированные права.
+141
strcat(strcpy(malloc(strlen(argv[0]) + sizeof(".track")), argv[0]), ".track")