• Как правильно реализовать освобождение памяти выделенной в функции?

    @dima20155
    you don't choose c++. It chooses you
    Все до безобразия просто:
    Вы выделяете память в момент, когда она вам нужна, а удаляете когда эта память вам более не нужна.
    Соотвественно, вам нужна функция array_deinit(), которая возьмет на себя непосильную ношу освобождения памяти в момент, когда вы больше не планируете обращаться к своему двумерному массиву.

    В простейшем случае, в С++ подобный функционал оборачивают в класс, который, в свою очередь, обязательно должен почистить за собой память хотя бы в деструкторе.

    Также в современном С++ не принято использовать new/delete без веской причины (например, вы пишете супер быстрый, современный контейнер, в котором хотите управлять всеми аллокациями самостоятельно), а рекомендуется использовать умные указатели для работы с памятью.
    Ответ написан
    2 комментария
  • Как в С++ проверить double на целочисленность?

    @vanyamba-electronics
    При обработке вещественных чисел следует определиться, которая точность вас устраивает в данном случае.
    В идеале 1.0 - это явно целочисленная дробь, но на практике возникает вопрос: а 0.99999999 - это достаточное приближение, чтобы принимать это число за 1.0?
    Поэтому функция должна иметь параметр точности:
    bool is_integer(double val, double precision = 0.000005)
    {
        return abs(val - round(val)) < precision;
    }
    Ответ написан
    2 комментария
  • Как сделать, чтобы DIV не перехватывал onclick() в BUTTON?

    @derasoft Автор вопроса
    Спасибо пользователям szQocks и Kentavr16 за наводку!
    Видимо, дело было в том, что onclick обрабатывается после mousedown, И всплытии одновременно. В общем, если поставить оба события как mousedown, и уже вместе с этим изменением поставить в кнопку
    event.stopPropagation(), код будет работать как надо.
    that.close_bt.onmousedown = function(event) {
    	event.stopPropagation();
    	win_con.list[this.id].remove();
    }
    that.onmousedown = dragndrop;
    Ответ написан
    Комментировать
  • Почему не работают модификаторы в vs code (html)?

    develx
    @develx
    Web developer
    Очевидно, что стоит расширение BEM Helper
    И у расширения есть настройки https://marketplace.visualstudio.com/items?itemNam...
    Для bemHelper.classNameCase выставить одно из возможных значений: any, kebab, snake, camel, pascal, shoutingSnake.
    Ответ написан
    1 комментарий