- 1
- 2
- 3
- 4
n = strlen(pName);
name = new char[n + 1];
memset(name, 0, n + 1);
memcpy(name, pName, n);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+8
n = strlen(pName);
name = new char[n + 1];
memset(name, 0, n + 1);
memcpy(name, pName, n);
боянчик. std::string наверное религия не позволяет. а strdup() слишком С. oh wait...
−4
static Singleton * g_pInstance = NULL;
Singleton* Singleton::sharedInstance()
{
if (g_pInstance)
return g_pInstance;
else {
g_pInstance = new Singleton();
if (g_pInstance->init()) {
return g_pInstance;
} else {
delete g_pInstance;
g_pInstance = NULL;
}
return g_pInstance;
}
}
Ещё из жизни синглтонов. Даёшь больше return'ов!
+16
// in .h file
class Singleton
{
public:
Singleton();
~Singleton();
private:
static Singleton* m_Instance;
friend Singleton& GetInstance();
};
inline Singleton& GetInstance()
{
assert(Singleton::m_Instance);
return *Singleton::m_Instance;
}
// in .cpp file
Singleton* Singleton::m_Instance = NULL;
Singleton::Singleton()
{
assert(!m_Instance);
m_Instance = this;
}
Singleton::~Singleton()
{
m_Instance = NULL;
}
Вот такую реализацию синглтона увидел в одном проекте.
ЗЫ: Для его корректной работы, в main было написано конечно же:
main() {
Singleton* s = new Singleton;
...
delete s;
}
+8
void SaveEncryptedFile( const char *text, int len, const char* filename )
{
char* pEncryptedText = new char[strlen(text)+1];
string x1 = "you'll";
string x2 = "never";
string x3 = "get a";
string x4 = "password";
char l_pBuf[255];
sprintf(l_pBuf,"%d",30*11/3);
string result = x1+x2+x2+x1+l_pBuf+x3;
encryptString(text,pEncryptedText,result.c_str(),strlen(text),result.length()); // там внутри xor
FILE* pFile = fopen(filename, "wb");
if (pFile)
{
fwrite(pEncryptedText,sizeof(char),len,pFile);
fclose(pFile);
}
delete[] pEncryptedText;
}
Нашёл в рабочем проекте. Для "расшифровки" файла используется ещё одна такая же функция.
+8
const Registry & Registry::getInstance()
{
Registry *instance = RegistrySingleton::instance();
if (!instance->mRootNode) {
instance->load();
}
return *instance;
}
void Registry::load()
{
try {
// ...
if (!mReader) {
mReader = XMLReaderFactory::createXMLReader();
}
// ...
mReader->parse( ... );
} catch (...) {
// ...
throw; // удачи всем пользователям обрабатывать исключения xerces...
}
}
боян синглтонно-абстрактный для чтения xml конфигурации с помощью xerces.
и не только ошибки не обрабатаешь (потому что getInstance() их бросает, угадай какой именно вызов из сотен загружает конфигурацию), но и в добавок народ не впечатал как многопоточность сделать правильно (RegistrySingleton это специализация шаблона который синхронизирует инициализацию mInstance переменной, и только).
+4
int eval (const Expr& e)
{
Match(e)
Case(const Value& x) return x.value;
Case(const Plus& x) return eval (x.e1)+eval(x.e2);
Case(const Minus& x) return eval(x.e1)−eval(x.e2);
Case(const Times& x) return eval(x.e1)∗eval(x.e2);
Case(const Divide& x) return eval(x.e1)/eval (x.e2);
EndMatch
}
Бьёрн Страуструп выбирает борщ.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3449.pdf
http://www.linux.org.ru/forum/development/9525806
Заметим, что не только Страуструп раскаялся в прошлом. Кармак с энтузиазмом рассказывает, как с головой погрузился в Haskell и Scheme, объясняет, почему хаскель невероятно крут и почему сегодня он бы, вероятно, сделал QuakeScheme вместо QuakeC. Он пишет на хаскеле порт wolf3D.
+61
УЧИМСЯ ТРАЛИРОВАТЬ ВМЕСТИ С PragramistOtBoga
PragramistOtBoga: ЗДАРОВА ЛАЛКА АЗАЗА
ЛАЛАКА ПРАГРАМИСТ: ПРевет не тралируй миня пажалузта!!!!!!
PragramistOtBoga: Ты лах карочи))0))нульскопка Мамку С++ и бал азазазаза лалка затарлин))0
ЛАЛАКА ПРАГРАМИСТ: Супкпздц((9 миня апять затралил гиниальный траль PragramistOtBoga
Сиводня маэстра тралинга PragramistOtBoga научит вас тралиравать лалак
Штобы к завтра дамашку зделали! Смарите у миня праверю))0
+1
std::AIDS
+77
#include <iostream>
using namespace std;
int binsearch(int* arr, int s, int r, int l, int t){
int m=(l+r)/2;
if (*(arr+m) == s) return m; // t - искомое
if (m == l || m == r) return 0;
if (*(arr+m) < s) binsearch(arr, s, m, r, t);
else binsearch(arr, s, l, m, t);
}
int main()
{
int n, k;
cin >> k;
cin >> n;
int A[n-1];
for (int i = 0; i < n; i++){
cin >> A[i];
}
cout << binsearch(A, k, n-1, 0, 0);
}
Требуется найти число K в упорядоченном массиве из N элементов и
определить чему равен номер соответствующего элемента массива.
Если элемент не найден, то вывести 0.
Входные данные
В первой строке расположено искомое число К.
Во второй - количество элементов в массиве N <= 10000.
Далее расположены N целых чисел, упорядоченных по возрастанию.
Выходные данные
Выведите наименьший номер найденного значения, или 0, если элемент не найден.
Проблема у меня в том, что не получается найти минимальный из подходящих ( Помогите пофиксить!
+12
#include <string>
#include <sstream>
#include <iostream>
int main() {
std::string str;
std::stringstream s("");
std::getline(s, str, '|');
std::cout << "good=" << s.good() <<
" bad=" << s.bad() <<
" fail=" << s.fail() <<
" eof=" << s.eof() << std::endl;
return 0;
}
good=0 bad=0 fail=1 eof=1
http://ideone.com/0Ceg8z
У меня один вопрос: нахуй так жить?