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

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    "постоянная ячейка памяти" была в восьмибитных архитектурах, где вся память помещалась в одну страницу.
    Уже в ранних x386 ячейки были не постоянными а в пределах выделяемого сегмента памяти, если игра влазила в 64к.
    Начиная с защищенного режима, в котором работает современная винда, вообще нет такого понятия. Память является виртуальной, которая может быть отражена и на физическую и на своп, и в лучшем случае оффсет может быть тем же отсчитывая от начала конкретного сегмента. Потому что внезапно память у современного приложения может быть фрагментирована.
    Ответ написан
  • Есть ли фриланс на С++ с нуля?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    помогай делать контрольные школьникам и домашку студентам за деньги. Там и нулевый С++ может пригодиться. Но как обычно чем ниже квалификация тем больше конкурентов
    Ответ написан
    Комментировать
  • Как практиковаться в программировании?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Забей на программирование, это не твое.

    Если тебе не интересно работать в консоли, неинтересно с формочками, то может быть, сильно настучав себе на голове ты это и сможешь осилить, и может быть даже сможешь осилить интервью и трудоустройство. Но на работе все равно быстро перегоришь и будешь жить несчастную жизнь.

    Найди ту деятельность, где у тебя глаза горят.
    Ответ написан
    4 комментария
  • Как обеспечивается совместимость динамических библиотек при ликовке в рантайме?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Просто по именам функций. Они указаны в спецификациях.
    Совместимость между версиями обычно обеспечивается вендором, но между разными версиями операционки, разница в динамических библиотеках может стать проблемой.
    Ответ написан
    Комментировать
  • С++; Дескоптные приложения или веб или операционные приложения?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Начал практиковать qt, но как я понимаю написание дескоптных приложений на плюсах - такое. Тогда хочу попробовать разработку ПО, cофтов, драйверов и тд. Что можете посоветовать по изучении этой темы?


    Что значит "такое"? Сложно, долго, неудобно?
    Так да, программирование это не тяп-ляп и готово, это долго, скучно, неудобно.

    Что такое разработка ПО и софтов по-вашему? Или десктопные приложения это не ПО и не софт? А что тогда?

    Есть подозрение, что нормального уровня вы далеко не достигли, если создать десктопное приложение вызывает такие проблемы.
    Стандартная задача начинающего - написать свой калькулятор, это как раз простой пример простого десктопного приложения. Или десктопной игрушки.
    Ответ написан
    2 комментария
  • Где найти такую CLI?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    юзать environment variables?
    Ответ написан
  • С++ На всех ли платформах одинаковая точность операций с float?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Точность зависит от типов данных, которые ты используешь. float и double имеют одинаковую длину в 32бит и 64бит архитектурах.
    Ответ написан
    Комментировать
  • Как реализовать управление для двух игроков на одной клавиатуре SFML?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Советую почитать о том, что такое NKRO
    Не факт что даже если будет верным код, найдешь клавиатуру где все будет работать
    Ответ написан
    Комментировать
  • Существует ли способ принять и автоматически подставить знак операции с числами в C++?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    в баш легко. там eval есть
    в python может тоже есть какая-то либа математическая, которая умеет в.
    Ответ написан
  • Как оценить потерю дискового пространства вследствие кластерного выделения?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Код на С++ для этого писать специально никто не будет.
    Подозреваю, что просто дали задания в школе/институте.
    Ну так почитай спецификацию FAT16 системы. Она просто устроена.
    Процент всегда будет зависеть от количества файлов, их размера и размера кластера. Просто берешь и считаешь руками. Как смог посчитать руками/в экселе - садишься и пишешь код на С++
    Ответ написан
    Комментировать
  • В чём суть шутки про ноги в С/С++?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Давным давно, на диком западе пользовались не очень безопасными револьверами. Нормального предохранителя не было, заряжать револьвер - слишком долго. Поэтому ковбои часто могли ходить с заряженными револьверами. А там было несложно неудачно дернуться, и собственно выстрелить себе в ногу.

    Любой инструмент, которым нужно пользоваться аккуратно, может привести к тому, что процесс упадет, возможно даже поломав другие процессы вплоть до синего экрана, то есть "выстрелишь себе в ногу".
    А с/с++ достаточно низкоуровневый язык, в котором нужно о многом думать.
    Забыл выделить память под переменную - выстрелил в ногу. Забыл освободить память - утечка накопилась - выстрелил в ногу. Перепутал указатель с указателем на указатель - ...

    В более современных языках работать проще, многое за тебя уже продумано и автоматизировано (garbage collector, например)
    Ответ написан
    Комментировать
  • Поиск адреса памяти в игре?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Причем тут поиск адресов памяти?
    Если вы пользовались каким-нить cheatengine или Artmoney исключительно поиском по значению, и понятия не имеете как программы пишутся и что такое языки программирования, то да, дело именно в отладчиках.

    Берется отладчик, декомпилируется код, подменяется своей, когда станет понятно как ее подменить.
    Да, нужны навыки хорошего разработчика, с опытом реверс инженеринга, и не одного, такие вещи при отсутствии исходного кода это много человекочасов некоторой коммуны, редко одиночки.
    Ответ написан
    8 комментариев
  • Где и как искать информацию о написании текстового редактора с нуля?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Как-то пока я сидел за компьютером мне пришла мысль о создании текстового редактора с нуля на одном из языков семейства "си"

    Есть уже опыт написания программ попроще на одном из языков семейства Си?
    Или с нуля и сразу редактор?

    "С нуля" означает то, что я не хочу использовать никакие графические интерфейсы или фреймворки, только чистый язык, максимум библиотеки.

    Следует немного все-таки подучить базовые навыки работы с компьютером с точки зрения разработчика на чем-то попроще. Например отличать термин "графический интерфейс" и "фреймворк".
    Или пиши тогда редактор, который будет работать в консоли, аналог какого-нить ed или vi

    Но в интернете я не смог найти нужную информацию.

    Это тоже весьма важный навык - уметь написать в гугл правильный вопрос.
    Например мне по "исходники простого текстового редактора с++" выдало примерно девяносто тысяч результатов.

    Или направьте на конкретный ресурс. Из языков в приоритете С++.

    Документация по С++. Сперва напиши несколько программ попроще. Потом уже текстовый редактор, когда освоишь терминологию, и задавая вопрос будешь способен предсказать примерно половину ответа.
    Ответ написан
    3 комментария
  • Использована неинициализированная переменная "а"?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    1. Используйте тег форматирование для вашего кода

    2. Дочитайте документацию до конца, загуглите вашу ошибку - она обычная популярная, нет смысла задавать тысячный вопрос если уже есть 999 ответов на него в интернет.

    3. Переменную нужно сперва определить, а потом с ней работать. Вы же просто начинаете пользоваться переменной, нигде предварительно ее не инициализировав - текст ошибки об этом ПРЯМО говорит. Необходимо не только объявить, но и задать дефолтное значение перед тем как к нему обращаться.
    Ответ написан
    2 комментария
  • Усиленно удалить файл в windows, возможно ли с помощью пары функций?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Вы не так понимаете, как это работает.
    В линукс файловая система использует структуру iNode в качестве хранения метаинформации о файлах. И когда вы открываете файл, по имени файла ищется iNode файловый дескриптор привязывается и лочит уже iNode. При этом имя файла на диске можно свободно удалять (а сами данные файла при этом удалятся позже, когда процесс который открыл файловый дескриптор его освободит).

    В виндовой файловой системе метаинформация и имя файла хранятся вместе, и поэтому открытый файловый дескриптор держит имя, и его нельзя удалить.

    Никакая недокументируемая функция это поведение не изменит. Пока процесс, который залочил файл в винде его не разлочит - ничего не получится.
    Ответ написан
    Комментировать
  • Создание читов с нуля?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Смысл изучения С++ для декомпиляции майнкрафта несколько отсутствует, так как сервер написан на java, а взламывать клиент - а смысл?
    Изучите как работает сеть, изучите как работает сервер, какие пакеты отправляет/принимает, ищите уязвимости.
    Ответ написан
    Комментировать
  • Подходит ли Unreal Engine для очень простых, казуальных игр?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Конечно подходит. Казуалку можно легко написать на unreal, а хардкорную игру на unity.
    Но если у вас навыки еще на уровне начинающего, то надо отталкиваться не от них, а от требований вашей игры - ведь у каждого инструмента есть его более удобное предназначение.
    Ответ написан
    Комментировать
  • В чем ошибка, если с кодом все нормально?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    URLDownloadToFileW не может найти. Проверь, что библиотека правильно подключена
    Ответ написан
    Комментировать
  • Как правильно выстроить логику кода с соблюдением принципов ООП?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Сейчас же я захотел переделать код, начав с соблюдения принципа «один класс - одна задача»

    Почему? Откуда взялся этот принцип?

    Следуйте следующим принципам:
    1) данные, которые находятся внутри класса обрабатывались методами этого класса
    2) Избегайте суперклассов (слишком больших классов, которые не помещаются в голову одного программиста, и вызывают много конфликтов при поддержке приложения)
    3) Соблюдайте баланс между первыми двумя пунктами.

    Учитывая, что вы единственный разработчик, то нет смысла делить класс на несколько, даже если он великоват.
    Если у вас есть визуализация этапов, можно было бы разве что в отдельный класс вывести эту визуализацию. А так - скорее всего у вас все хорошо. Может быть названия методов пересмотреть и все.
    Ответ написан
    Комментировать
  • Как решить задачу?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Ну или уточните у преподавателя, почему дают задачи, если вы не проходили. Или вы проходили но в это время чихнул/заболел/смотрел ютуб.

    Пройди циклические списки самостоятельно.

    Твоя задача - это не выдать ответ преподу. На самом деле твоя задача - научиться пользоваться циклическими списками для себя. А для этого нужно самостоятельно ее решить.
    Ответ написан
    Комментировать