Ответы пользователя по тегу C++
  • Каким образом лучше управлять памятью?

    Ternick
    @Ternick
    1) sizeof(char) всегда и при любых условиях 1 !
    2) Есть волшебная штука SetLastError и GetLastError.
    3)Утечки у тебя в коде присутвуют, как пример:
    char* ReadStream(const CFB::CompoundFileReader& reader, const CFB::COMPOUND_FILE_ENTRY* entry) {
        char* buf = new char[entry->size]; // Круто, выделил память и всё
        reader.ReadFile(entry, 0, buf, entry->size); // использовал память
        return buf; // return ?? серьёзно ?? а очистить память ?
    }

    Прочитай про сборщики мусора вроде cdecl и других.
    Создавай глобальные переменные и туда выделяй память, а в конце очищай, на мой взгляд лучше использовать malloc и free.
    Дальше ничем не помогу.
    Ответ написан
  • Как понять потоки?

    Ternick
    @Ternick
    Здравствуйте, поток это очень простая штука :)
    Если очень кратко, то это запуск некой подпрограммы отдельно от своей, после чего можно управлять ей {убить, остановить, запустить, получить результат выполнения, узнать жив ли поток и т.д.}. На мой взгляд есть два брата которые помогают ускорять работу производимую программой - это асинхронность и многопоточность. Давайте пока не будем вдаваться в подробности технической реализации :)
    Ну вот в принципе и всё.
    Потоки нужны чтобы делать несколько вещей сразу. Если ещё проще, то это как человек с несколькими руками, который может каждой рукой делать что-то отдельное.
    Ответ написан
    Комментировать
  • Нужна помощь с кросс компиляцией бинарника под разные системы Linux?

    Ternick
    @Ternick
    Думаю самый просто вариант решить проблему - это использовать интерпретатор. Взять какой-нибудь python3 или Dart. Dart кстати имеет возможно (компилироваться), но python3 в разы быстрее.

    Думаю если перенесёшь свой проект на python не пожалеешь, НО желательно чтобы на всех машинах был установлен python3 если ты хочешь переносить его в виде исходного кода или можно упаковать проект через pyinstaller в исполняемый файл.
    Ответ написан
  • Как выбирать тип значения возвращаемой функции?

    Ternick
    @Ternick
    Всё очень просто.
    Тип функции определяет возвращаемое значение.
    Например:
    int foo(){
        int i = 7666;
        return i;
    }

    Функция foo имеет тип int потому, что возвращает значение int;
    Так же есть тип void, он используется если функция ничего не возвращает, как-нибудь так:
    void increment(int& i) {
        i++;
    }

    Функция increment получает в аргументы адрес переменной int, затем увеличивает её значение на 1 и ничего не возвращает. поэтому void.
    Всё очень просто :)
    Ответ написан
    Комментировать
  • Как убить процесс полностью используя С++?

    Ternick
    @Ternick Автор вопроса
    Всё как обычно :) Я решил проблему так:
    После создания процесса я получил handle процесса, позже из него получить pid(DWORD) потом DWORD в строку, потом через taskkill /T /F / PID + pid :)
    Ответ написан
    Комментировать
  • Веб-разработка: Java или Python в связке с C++?

    Ternick
    @Ternick
    Ну с С++ вы как минимум осознаете что в этом языке программирования без boost с интернетом вообще проблематично работать :)
    И смотря какое приложение вы хотите сделать :)
    Я бы предложил python + php :)
    Ответ написан
    Комментировать