Григорий
загуглил про конан, прикольная штука)
Григорий
обилие всякие штучек поражает конечно, после электроники
Anatoly
Григорий
спасибо, добавил себе в список задач
Anonymous
Хэй, ребята.
S7 Airlines устраивает хакатон в Москве, в Парке Горького. Призовой фонд 600 000 руб и еще возможность трудоустройства в S7 Group или заключение контракта с компанией S7 Airlines. Участие бесплатное. Если по результатам заочного этапа ваше решение будет отвечать критериям отбора, то вы будете приглашены на финальный этап в Москву, организаторы оплатят перелет.
Регистрация: https://goo.gl/0Lhc2k
Evgenii
а спонсор этого дня — программистский цитатник.
программистский цитатник — розы любят воду, пацаны покодить,
розы гибнут на газоне, пацаны на питоне.
Крылатый
Спонсор сегодняшнего дня оффтоп.
🦥Alex Fails
Надо по нему заметочку накатать в канальчег
🦥Alex Fails
🦥Alex Fails
cyber
в топку такое на c++
Square
Ты хантишь кого то?
Andrei
копирования си-строки?
Andrei
А память я сам выделять должен?
Square
Маловато условий? Ограничения есть?
Square
Я б страницами копировал
Square
Потом остатками
Square
Если типа быстро надо
Nikita
Andrei
Блин если не я выделяю, то интерфейс у функции другой.
🐙 Antony
Вы пытаетесь переизобрести stdup или strcpy?
Surreal
или std::copy
Andrei
На c++?
Andrei
Какого размера?
Andrei
Достаточно чтобы вторая строка поместилась?
Andrei
Если она уже выделена, зачем передавать по двойному указателю?
Square
Блин, я подумал что мы в админке
Andrei
Andrei
А как эта выделенная память нам передана?
Nikita
вот того, кто задачу придумал — неплохо было бы ложкой по голове
Andrei
(пока что звучит как очень невнятно сформулированная задача, в духе «прочитай мои мысли»)
Andrei
Надо угадать, какой из сотни моментов ответа на эту задачу имел в виду интервьюер.
Nikita
Типа неудачники нам не нужны
Nikita
Два менеджера по персоналу — опытный и стажёр — сидят в офисе и обсуждают дела. Молодой достает огромную пачку резюме, штук 300:
- Мы должны просмотреть их все, чтобы подобрать кандидатов на эту вакансию.
Опытный хладнокровно берет у него пачку, делит ее пополам, одну часть — на стол, вторую — в корзину.
Молодой изумленно:
- А как же претенденты?!
Опытный невозмутимо:
- А зачем нам неудачники?..
Surreal
🐙 Antony
Я угадал желание собеседующего?
#include <cstring>
#include <iostream>
inline void str_copy(const char** strOut, const char *strIn) {
*strOut = strdup(strIn);
}
int main() {
const char* data = 0;
str_copy(&data, "Hello");
std::cerr << data;
std::free(const_cast<char*>(data));
}
🐙 Antony
а оно компилится
🐙 Antony
а оно и работает
🐙 Antony
еще вариант:
c++
#include <iostream>
inline void str_copy(const char** strOut, const char *strIn) {
*strOut = strIn;
}
int main() {
const char* data = 0;
str_copy(&data, "Hello");
std::cerr << data;
}
Surreal
void *p = new (std::nothrow) char[strlen(strIn)];
if (p == nullptr) {
return -1;
}
std::memcpy(p, strIn, strlen(strIn) * sizeof(char));
*strOut = static_cast<const char *>(p);
RattenKong 🦧🐀🦍️
RattenKong 🦧🐀🦍️
И не раз
Surreal
Какая трагедия, что же делать.
Surreal
RattenKong 🦧🐀🦍️
Ну, например, сразу копировать в указатель
🐙 Antony
У меня 3 варианта ответа:
* "HR, а позоваите мне человека, в чьей команде я буду в дальнейшем работать"
* "Спасибо, товарищ собеседующий, но моя квалификация явно не подходит под нужды вашей компании."
* - 42!
- что "42"?
- а что "inline str_copy(const char **strOut, char *strln)"?
RattenKong 🦧🐀🦍️
А то что незамалоченый или не терминированфй поинтер засунут - проблема засунувшего
Surreal
Ага.
RattenKong 🦧🐀🦍️
А зачем поинтер на поинтер то? Чтобы *dest = *src?
Surreal
Больше вас ничего не смущает?
RattenKong 🦧🐀🦍️
А, лол там птр на птр src и птр на dest
RattenKong 🦧🐀🦍️
Oche stranno
RattenKong 🦧🐀🦍️
И инт возращать зачем? -1 если вышел за границу?) И в случае успеха размер скопированной строки?
Surreal
Это почти стандартный интерфейс для любой сишной функции. Там есть одно ключевое слово, которое делает функцию несколько бессмысленной.
Square
Square
#mindfuck
Square
Потом вернусь ;-)
RattenKong 🦧🐀🦍️
я понял, это массив строк длина которого неизвестна !
Surreal
Чо мы конст не снимем штоле
Действительно, всегда так делаю. Публичный интерфейс с const, внутри функции const_cast, чтобы не расслаблялись.
Surreal
На каст, кстати, нельзя память выделять. Т.е. засунуть ногу в капкан можно, а отрезать ее, чтобы выбраться, - нет.
Nikolay Markov
а что есть хорошего для графов, кроме boost graph? задача - держать в памяти большой граф на несколько гигов, обновлять его и делать запросы к нему
Nikolay Markov
я знаю cpan только в применении к перлу
Алдар
подвох в чем? что память надо выровнять, или копировать словами минимум, а не байтами?
Vyacheslav
Evgenii
Релиз набора компиляторов GCC 7
http://www.opennet.ru/opennews/art.shtml?num=46487
После года разработки состоялся релиз свободного набора компиляторов GCC 7.1, первый значительный выпуск в новой ветке GCC 7.x. Релиз приурочен к 30-летию с момента формирования первого выпуска GCC 1.0. В соответствии с новой схемой нумерации выпусков, версия 7.0 использовалась в процессе разработки, а незадолго до выхода GCC 7.1 уже ответвилась ветка GCC 8.0, на базе которой будет сформирован следующий значительный релиз GCC 8.1. #opennet
Surreal
Объявлен устаревшим Cilk+, набор расширений для языков Си и Си++ с реализацией предложенной компанией Intel методики параллельного программирования;
Хнык-хнык
🦥Alex Fails
да интел по ходу забила на это
Surreal
Скоро нельзя будет пугать людей подобным:
http://rextester.com/DWIZ94473
Surreal
А там же еще потоки есть.
🦥Alex Fails
эх
Stanislav
https://github.com/google/clif
Stanislav
🤔
Stanislav
гугл как всегда лаконичен в документации
Stanislav
https://gcc.gnu.org/ml/gcc-announce/2017/msg00000.html
Stanislav
йеее