• Что означает эта строка? Ее предназначение?

    alsopub
    @alsopub
    В массив search_for сначала считывается введенная пользователем строка, заканчивающаяся на "Enter" (0x10), затем этот символ Enter заменяется на 0x00, что в C является признаком конца строки.
    То есть после fgets в массиве у нас находится введенная строка, перевод строки, \0.
    После указанной строки в массиве остается введенная строка, \0, \0 (второй "ноль" уже нагрузки не несет).
    Ответ написан
    Комментировать
  • Передача узла дерева?

    @res2001
    Developer, ex-admin
    У операции разыменования приоритет ниже, чем у операции выбора элемента по указателю, т.е. в вызове *root->next.push_back(node); порядок операций такой *(root->)next.push_back(node);, что, видимо, не то что вы хотели, расставьте скобки так: (*root)->next.push_back(node); и будет счастье.
    А вообще, какой смысл в On_BG передавать указатель на указатель? Судя по коду достаточно просто указателя, а еще лучше - ссылки.
    Ответ написан
    Комментировать
  • Что будет за публикацию уязвимости/бага в публику?

    Ommonick
    @Ommonick
    qa+dev (scala, golang, ts/js, api, grpc)
    Обычно делается так, багхантер находит уязвимость, изучает ее. Затем уведомляет тех, в структуре кого эта уязвимость находится, ждет некоторое время, если нет сподвижек по устранению уязвмости - публикует статью на тематическом ресурсе, пользуется уязвимостями, забивает на это дело - все в рамках его воображения.
    Однако ответственность за действия присутствует. Если в договоре связи указаны пункты о нештатных действиях относительно услуг связи, то за это могут и бо-бо сделать. Лучший профит в первую очередь - составление статей, получение опыта и славы специалиста, а уже потом выгода, полученная на оплошностях.
    Ответ написан
    Комментировать
  • Ставить ли фигурные скобочки?

    aminought
    @aminought
    Правилом хорошего тона считается постановка фигурных скобок в любом случае. Для вдохновения можете прочитать вот эту статью: Исключительная красота исходного кода Doom 3
    Ответ написан
    2 комментария
  • C++11, C++14. Использование auto - признак дурного тона?

    Nipheris
    @Nipheris Куратор тега C++
    Такие дельные советы тут...

    А правило проще некуда: если вы без указания типа и так УЖЕ ИМЕЕТЕ достаточно информации, чтобы уверенно работать со значением - тогда можно использовать auto. Если чувствуете, что не имеете, или сомневаетесь, что имеете - лучше тип указать. Пример, где использование auto отлично подходит - итераторы:
    std::list<int> items;
    auto i = items.cbegin();

    Во второй строке четко написано - items.cbegin - константный итератор по items, бегущий с начала списка. Мне этого более чем достаточно. Указание типа std::list<int>::const_iterator мне никакой новой информации не принесет. Тем более, т.к. итераторы от разных контейнеров несовместимы, то мне нужно еще и сразу знать, по какому конкретно списку у меня итератор - я опять-таки посмотрю на items.cbegin, а не на тип.

    А вот auto в объявлениях функций/методов и правда ни к чему. Его, кстати, даже не сразу там разрешили использовать (только в C++14). Причина тому вновь читабельность - чтобы понять, что возращает функция, нужно прочесть ее текст как минимум до первого return, а лучше - полностью. Единственный сценарий, где без auto не обойтись при указании возвращаемого типа - это стрелочная нотация с decltype, но я думаю вы не скоро с ней столкнетесь.
    Ответ написан
    Комментировать
  • Как "красиво" и коротко вычесть два массива поэлементно?

    @idap
    интересуюсь python, latex, linux, ML, AI
    [x - y for x, y in zip(b, a)]
    Ответ написан
    Комментировать
  • Востребованы ли системные программисты для встраиваемых систем?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    В основном сейчас embedded это C++

    А так - полно вакансий. Сейчас интернет вещей, везде нужны ОС, прошивки, драйвера. Сам вот работаю над WebOS.
    Ищите вакансии крупных фирм для embedded технологий.
    Ответ написан
    Комментировать
  • Какие задачи на C / C++ сейчас востребованы?

    @vilgeforce
    Раздолбай и программист
    Ищите интересный проект на том же Github и вливайтесь! Можете заняться фаззингом GPG и/или TOR. Там непаханое поле.
    Ответ написан
    Комментировать
  • Как правильно передать void в функцию (C++/Qt)?

    maaGames
    @maaGames
    Погроммирую программы
    QGenericReturnArgument returnArgument(metaMethod.typeName(), &data)

    замена на

    QGenericReturnArgument returnArgument(metaMethod.typeName(), *data)
    Ответ написан
    3 комментария
  • Валидно ли передавать ссылку по ссылке в C++?

    Nipheris
    @Nipheris Куратор тега C++
    > ссылок на ссылки
    Это не ссылка на ссылку. В функцию b попадет точно такая же ссылка, что и в f. Ссылки ведут себя как "вторые имена" для переменных, поэтому когда вы инициализируете одну ссылку другой, вы просто добавляете в распоряжение еще одно имя для куска памяти. Такого понятия, как ссылка на ссылку в принципе быть не может, в отличие от "указатель на указатель", т.к. указатель сам по себе - реальная самостоятельная переменная с выделенной для нее памятью, на которую, в свою очередь, также можно получить указатель. Ссылка - это запись в таблице идентификаторов компилятора. Да, в зависимости от ситуации для обеспечения ее работы может потребоваться указатель (например, при передаче ссылки в функцию нужно как-то передавать адрес), но этим уже занимается компилятор, поддерживая для вас абстракцию ссылки.
    Другое дело - это, как указал Александр Ручкин - время жизни объекта, это другая история. Разумеется, тот объект или значение, ссылку на который мы сформировали, должны "жить", пока к этому объекту идут какие-либо обращения на чтение/запись.
    UPD: Кстати, int&& - это НЕ ссылка на ссылку, это r-value ссылка и совсем другая история.
    Ответ написан
    Комментировать
  • Какая формула поворота объекта на другой объект в 2D?

    TomasHuk
    @TomasHuk
    1 По формуле ищем уравнение прямой, которая проходит через два точки.
    2 Приводим найденное уравнение к уравнению прямой с угловым коэфициентом.
    3 Через угловой коэффициент в уравнении прямой (равен тангенсу) находим угол.
    4 Поворачиваем синюю фигуру на угол, равный разности между найденым углом и текущим углом фигуры.
    Ответ написан
    Комментировать
  • Что у меня не так с регулярными выражениями в C++?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Зачем вам столько скобок? Квантификатор отлично применяется непосредственно к мета-символу. Мне кажется вы слишком много экранируете.
    Попробуйте вот так:
    "^\w+ \w+ \w+$"
    Ответ написан
    2 комментария
  • Какие есть альтернативы Lua?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Насколько я видел - как игрушки, так и серьезные проги используют либо Lua, либо Python, либо свой собственный скриптовый язык.

    В еще более редких случаях они используют VisualBasic (например какой-то из графических CAD`ов, не помню толи компасс, толи еще какой-то.... были в универе по нему лабы, но название в голове не сохранилось).
    Ответ написан
    Комментировать
  • С чего начать когда Руководитель ИТ отдела уволился без отработки и дела не передал?

    Я бы начал с инвентаризации...глобальной инвентаризации
    1. Оборудование, рабочие места, серверная и т.д.
    2. Текущие открытые проекты и задачи (если нет какого либо специального ПО-надо развернуть что нибудь бесплатное, сам использую руководитель)
    3. Связь - провайдеры, договора, счета и т.д.
    4. Взаимодействие с клиентами и смежными подразделениями
    5. Список открытых вопросов - разослать всем кто к ним причастен, клиентам, менеджерам, руководителям других подразделений

    Ну а после того как все структурируете, опишите (разверните локальную wiki если ее нет - и в ней описание, и обсуждение всего что происходит ), поднимите и актуализируйте все существующие регламенты.

    как то так на мой взгляд.
    Ответ написан
    Комментировать
  • Правильный сон при умственных нагрузках - как правильно спать?

    Neuroware
    @Neuroware
    Программист в свободное от работы время
    Нужно ложиться тогда когда хочется спать и просыпаться без будильника тогда когда организм захочет. Все остальное происки заинтересованных лиц, которым нужно, чтобы рабы работали больше, а думали меньше
    Ответ написан
    5 комментариев
  • На какой срок выдается сертификат разработчика Android Market?

    edinorog
    @edinorog
    Троллей не кормить!
    навсегда до момента пока кто-то не решил что вы нарушаете чьи-то права. потом навсегда заканчивается =)
    Ответ написан
    Комментировать
  • Каким инструментом отреверсить EXE написанный на C# и поменять текст?

    1) Reflector
    2) SAE
    3) dotPeek
    4) ILSpy
    5) de4dot
    6) DotNet Dumper
    7) ILSpy NEXT. и многое другое.
    8) Не нарушайте авторские права, уважайте труд других людей. Используйте указанные программы только для своего обучения.
    Ответ написан
    2 комментария
  • Лишние символы в c++, откуда?

    Во-первых, new char выделит память только для одного символа, а у вас их много. То есть уже в следующей строке (cin >> array) проезд по памяти. Если пишете в целях обучения и нельзя брать std::string, то выделяйте с запасом, например new char[256]; Освобождать при этом память надо будет при помощи delete[] array;
    Во-вторых, конец строки определяется по нулевому символу на конце. cin >> array делает это сам (пишет в конец array нулевой символ), а вы в своей функции нулевой символ не выставляете. Сделать это можно так:
    str[length_str] = '\0';
    Но надо иметь в виду, что памяти надо выделить [хотя бы] на 1 больше, чем length_str.

    Итого:
    1. Вам надо в обоих случаях память выделять под массив. В первом случае можно под 256 элементов. В идеале при этом читать не при помощи cin, а другими функциями, дабы избежать переполнения на случай, если введут строку более длинную.
    2. В reverse надо выставлять терминирующий нуль и исправить длину массива. Возможно вообще разворачивать строку по месту, т.е. менять местами буквы, а не создавать новую строку (в этом случае не надо ни память выделять, ни трогать терминирующий нуль, он останется на месте).
    3. Вам надо удалять выделенную память по окончании использования при помощи delete []
    Ответ написан
    2 комментария