Задать вопрос
  • Почему переопределение метода без virtual -- это не переопределение?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Если в официальной доке с++ где-то написано "переопределение возможно тогда и только тогда, когда есть virtual у метода базового класса"

    Написано, ровно это: eelis.net/c++draft/class.virtual#2

    то почему именно так?

    Потому что это определение термина function override в C++. Для других вариантов взаимодействия имён функций есть другие термины.
    Ответ написан
    Комментировать
  • Как удалить все строки до n через sed?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как отредактировать это, чтобы работало?
    получаю n через grep
    Далее пытаюсь понять как удалить через sed все строки от 1 до n

    Можно всё это выполнить в одном скрипте sed:
    sed -i '0,/string:/d' file1
    Ответ написан
    2 комментария
  • Почему так читается текстовый файл?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему-то как я не стараюсь всё записывается только в sportsmens[i].full_name,

    Поскольку ты используешь fscanf, а поля в твоём файле разделены пробелами, формат fscanf должен включать в себя пробелы чтобы избавиться от разделителей. Кроме того, имеет смысл проверить, что setlocale возвращает не-NULL, иначе он не повлияет на десятичный разделитель (и %f не сможет прочитать число с плавающей точкой записанное как 12,12).
    Ответ написан
    4 комментария
  • Почему возникает ошибка при компилации gtest?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    не могу понять в чем проблема
    ошибка: undefined reference to `CheckUP::checkUP(std::__cxx11::basic_string, std::allocator >&, float&)'

    Проблема в том, что ты не слинковал свой тест с кодом реализующим класс CheckUP.
    Ответ написан
  • Почему два идентичных файла ведут себя по разному?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Похоже на то, что hare run не нравятся виндовые концы строк (CR/LF). Можно использовать утилиту dos2unix для приведения концов строк в понятный hare вид (LF).
    Ответ написан
    2 комментария
  • Что не так с функцией на C++?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    error C2835: user-defined conversion 'operator`double'' takes no formal parameters

    Он говорит тебе о том, что такая перегрузка: operator double (int limit) невозможна. Вторая ошибка -- это следствие первой.

    Определим в объекте Group две функции с одинаковым именем, например double Age(); и double Age(int limit);.

    Так бы и сделал, зачем оператор для этого перегружать?
    Ответ написан
    Комментировать
  • Как переводить из двоичного числа - строки в десятичное число строку?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Но не получается

    Ну да, не получается, потому что ты не понял алгоритма по ссылке до конца, потому что его изложение оставляет желать лучшего.
    - zeroCounter как я понял нужен для реализации шага "Remove leading "0" from X'", но эта реализация неправильная. К тому же она находится вне цикла while ( X != "0" ).
    - for (b in bits of X) // msb to lsb говорит о том, что b должен пробегать двоичные цифры, от старшего разряда к младшему, в формуле R = 2*R + b фигурирует значение разряда, а не его индекс, как в твоём коде.

    R, как я понимаю, должна быть очередная десятичная цифра получающегося числа?

    Это верно. Очередной младший разряд.
    Ответ написан
    Комментировать
  • Почему не возникает ошибка при вводе слова больше длины чем выделена память?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    должна возникнуть ошибка, но по факту её не возникает.

    А ты собери свою программу с санитайзером памяти (-fsanitize=address) и будет тебе ошибка.
    Обращение к памяти за пределами выделенных массивов -- это UB, отсутствие видимого эффекта -- допустимый вариант поведения при UB.
    Ответ написан
    Комментировать
  • Почему не собирается пакет gettext?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    /usr/lib/gcc/x86_64-lfs-linux-gnu/12.2.0/../../../../x86_64-lfs-linux-gnu/bin/as: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory


    Никита Савченко, я просмотрел по диагонали что LFS рекомендует собирать и не увидел в этом списке zlib. А это значит, что твои binutils подхватили ссылку на хостовый zlib, которого нет в chroot. Я подозреваю, что опция binutils configure --disable-shared или --enable-compressed-debug-sections=none решит эту проблему. Ну либо надо собрать и установить в chroot ещё и zlib.
    Ответ написан
    3 комментария
  • Почему iptables блокирует траффик?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    В syslog обнаружил, что мой ip блокируется почему-то


    Так это же из вот этого правила:
    5       30  5264 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 5/min burst 5 LOG flags 0 level 7 prefix "iptables denied: "

    а поскольку оно стоит перед правилом ACCEPT для пакетов openvpn, то оно выводит и принятые пакеты openvpn.
    Перенеси его в конец цепочки input, чтобы оно выводило только реально отброшенные пакеты.
    Ответ написан
    5 комментариев
  • Как исправить ошибку "invalid use of incomplete type"?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    как правильно выстроить определения данных классов, что бы программа компилировалась?

    Перенести определения классов A и S после определения класса M, добавить объявление класса S перед определением класса D.
    Ответ написан
  • Уместно ли делать резервную копию локальных репозиториев git через robocopy?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Если каталог под управлением git скопирован целиком и содержимое копии идентично оригиналу -- всё будет ок.
    У рабочих каталогов созданных командой git worktree внутри нет истории, только текстовая ссылка на каталог .git. Поэтому если всю эту конструкцию скопировать в другое место файловой системы и попытаться использовать там, то могут быть неожиданные эффекты, поскольку worktree будет ссылаться по абсолютному пути на оригинал, а не на копию.
    Ответ написан
    2 комментария
  • Почему в С++ появляется Segmentation fault?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    конкретную причину ошибки в коде так и не уставновил

    Да вот же она: Tree* head{0}; -- в head у тебя NULL.
    А std::cin >> head->sizeOfChild пытается читать в поле объекта на который указывает head.
    Ответ написан
    Комментировать
  • Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Никак не пойму что за ошибка, и что она хочет от меня.

    Ошибка -- обращение к памяти, к которой нельзя обращаться, первая ссылка по запросу sigsegv в гугле.
    Хочет она от тебя чтобы ты веделил память для colonies[i].aparts перед тем как к ним обращаться.
    Ответ написан
    Комментировать
  • Заменить цикл на рекурсию - возможно ли в этом случае?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Возможно ли вместо цикла использовать рекурсию? Если да, то как?

    С таким распределением номиналов банкнот -- можно, типа того:

    static int foo(int s, const int *nom)
    {
        if (! s)
            return 0;
        else
            return foo(s % nom[0], nom + 1) + s / nom[0];
    }
    ...
    static const int nom[] = {500, 100, 50, 10, 5, 2, 1};
    printf("%d\n", foo(s, nom));
    Ответ написан
    Комментировать
  • Что бы вы хотели знать, когда перешли на линукс или первый раз поставили?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Что бы вы хотели знать, когда перешли на линукс или первый раз поставили?

    - как устроена пакетная система: как искать пакеты, как по файлу найти содержащий его пакет, как получить список файлов пакета
    - как устроены настройки (что в /etc, что в /proc, что в /sys), как они применяются
    - как разбираться с проблемами: какие бывают логи, аудит, strace, gdb
    - как искать информацию: man, info, apropos
    - какие есть стандартные инструменты в этой системе: POSIX.1-2008: find, grep, kill, less, ps, ...

    что нужно делать, что не нужно

    - если нужны какие-то библиотеки -- сначала искать их в репозитории дистрибутива, только потом пытаться собирать их самому
    - если собрал что-то сам, что отсутствует в репозитории -- оформи это пакетом
    - не нужно пересобирать ядро, почти наверняка
    Ответ написан
  • Почему возникает ошибка "Process finished with exit code 139"?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему возникает ошибка

    Из-за лишней звёздочки вот тут в функции input_array: scanf("%d", *(b+i));
    Но и дальше пораскидано граблей: input_array выделяет память (b = (int*) malloc(a * sizeof(int));) и даже пытается её возращать, но неправильным типом и main это значение не использует. А поэтому в main b как был NULL так и остаётся. По-хорошему надо как-то так:

    int * input_array(int a){
        int *b = (int*) malloc(a * sizeof(int));
        for (int i = 0; i < a; ++i) {
            printf("array[%d] = ", i);
            scanf(" %d", b+i);
        }
        return b;
    }


    int main() {
        ...
        printf("Введите длину массива:");
        scanf(" %d", &a);
        int *b = input_array(a);
        min = find_min(b, a);
        max = find_max(b,a);
        average = average_function(min, max);
        ...
    }
    Ответ написан
    Комментировать
  • Как узнать, откуда прерывание?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    проблема заключается в том, что я не знаю, как получить состояние машины в момент прерывания, чтобы его сохранить.

    Возможно тебе следует выяснить, что это конкретно за "состояние машины" которое ты собираешься сохранить, возможно это поможет тебе его найти.
    Ответ написан
    4 комментария
  • Как исправить проблему с неоднозначностью?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    void EcsSystems::Add(IEcsSystem* system) {
      _systems.push_back(system);
    
      if (IRunSystem* runSystem = static_cast<IRunSystem*>(system)) {
        _runSystems.push_back(runSystem);
      }
    }

    Это странное решение -- сначала потерять всю информацию о типе, а потом м помощью каста выяснять, а каким же он был. К тому же здесь очевидно имелся в виду dynamic_cast, потому что результат static_cast для не-NULL аргумента всегда будет отличным от NULL.
    Ответ написан
    Комментировать
  • Есть ли альтернатива cherry-pick для отмены коммитов?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    git revert умеет работать с диапазонами версий и продолжать/отменять процесс в случае конфликтов.
    Ответ написан