- 1
- 2
std::string cmd = "some command";
Socket.Write( cmd.c_str(), strlen( cmd.c_str() ) );
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+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")
+129
if (i.toString().indexOf('.') == -1) { ... }
Ещё один способ проверить, целое ли число.
+163
function loading() {
$('#close').hide(function() {
$('#loading').show(function () {
setTimeout(function(){
$('#loading2').show(function() {
setTimeout(function(){
$('#loading3').show(function () {
setTimeout(function(){
$('#vk').show(function() {
setTimeout(function(){
$('#odn').show(function() {
setTimeout(function(){
$('#fb').show(function() {
setTimeout(function(){
$('#tw').show(function () {
$('#geo').show();
setTimeout(function(){
payment();
},1300);
});
},1600);
});
},1700);
});
},1400);
});
},1600);
});
},1900);
});
},1600);
});
});
}
Из исходного кода сайта, "раскрывающего" анонимов на аск.фм
+108
assert(buf=malloc(BUF_SIZ));
А в релизе мы сэкономим памяти
−105
Дана строка. Разрежьте ее на две равные части (если длина строки — четная, а если длина строки нечетная, то длина первой части должна быть на один символ больше). Переставьте эти две части местами, результат запишите в новую строку и выведите на экран.
При решении этой задачи не стоит пользоваться инструкцией if.
Вообще не разбираюсь в строках. Помогите пожалуйста.
+23
#include <iostream>
#include <stdlib.h>
#include <typeinfo>
using namespace std;
#define ololo for(volatile register int i=0;i<10;++i);
struct VB
{
virtual void f() const =0;
};
class V1: public VB
{
void f() const {ololo}
};
class V2: public VB
{
void f() const {ololo}
};
struct TU1
{
inline void f() const {ololo}
};
struct TU2
{
inline void f() const {ololo}
};
struct TUB
{
const type_info* type;
union
{
TU1 tu1;
TU2 tu2;
};
template<class T>
void ctor()
{
this->type=&typeid(T);
}
template<class T>
inline void call(const T& f)
{
if(this->type==&typeid(TU1))
f(this->tu1);
else
f(this->tu2);
}
};
enum {N=1000, N2=N*50};
int main() {
cout<<"ok"<<endl;
{
VB*v[N];
for(int i=0;i<N;++i)
if(rand()%2)
v[i]=new V1;
else
v[i]=new V2;
volatile clock_t a=clock();
for(int j=0;j<N2;++j)
for(int i=0;i<N;++i)
v[i]->f();
volatile clock_t b=clock();
cout<< (double)(b - a) / CLOCKS_PER_SEC<<endl;
}
cout<<"ok"<<endl;
{
TUB v[N];
for(int i=0;i<N;++i)
if(rand()%2)
v[i].ctor<TU1>();
else
v[i].ctor<TU2>();
struct Continuation
{
inline void operator()(const TU1& a) const {a.f();}
inline void operator()(const TU2& a) const {a.f();}
} cps;
volatile clock_t a=clock();
for(int j=0;j<N2;++j)
for(int i=0;i<N;++i)
v[i].call(cps);
volatile clock_t b=clock();
cout<< (double)(b - a) / CLOCKS_PER_SEC<<endl;
}
cout<<"ok"<<endl;
return 0;
}
http://ideone.com/plFaLM
Тут в соседней теме разгорелся спор, что быстрее - полиморфизм виртуальных функций или полиморфизм tagget union. По сути последнее - выбор по if нужной виртуальной функции. Говорят в Java быстрее второе.
Тема родилась из http://govnokod.ru/12025#comment158188
Получилось по результатам измерений:
Виртуальные функции: 1.8 секунд.
tagget union: 1.94 секунд.
Притом это всего 2 полиморфных типа в tagget union, а если рост числа полиморфных классов будет расти, то разрыв между виртуальными функциями и tagget union только увеличится. Притом производительность tagget union будет только падать.
Тема поднята ещё со взглядом на функциональные языки. Это ведь там так модны ADT с постоянным внутри ifподобным паттернматчингом по ним.
Жду указания на косяки или способы поднять производительность tagget union.
+124
http://habrahabr.ru/post/147484/
Я просто оставлю это здесь.