Задать вопрос
  • Как максимально очистить диск C?

    @res2001
    Krenicc,
    Это нормально устанавливать программы на другой диск

    Это, конечно, нормально. И никто не запрещает. Но в реальности это нафиг не нужно. После того как винда загрузилась самой винде от диска уже надо не много и установленные на него программы никак ей не помешают.
    К играм это не относится - они слишком много весят и действительно их лучше ставить на другой диск.

    На счет размера системного диска - да, у вас маленький диск. Вместо того, что бы все время бороться за место, подумайте над тем как его расширить.

    Для примера. У меня Вин11 профили пользователей целиком перенесены на другой диск, но винда, месяца 3 назад установленная, уже отъела больше 100Гб. Пока не парюсь - места хватает.

    Рекомендую перенести каталоги пользовательских профилей на другой диск, обычно они отъедают большую часть диска.
  • Как думаете, с чем связана ошибка и как ее исправить?

    @res2001
    Vilfredo KKK, https://en.cppreference.com/w/c/string/byte/strncpy
    По size_t: смотрите по ошибкам на какую переменную ругается компилятор, меняете ей тип на предложенный компилятором, компилируете, опять смотрите ошибки и т.д. пока ошибки не исчезнут.

    Надо иметь ввиду, что когда вы выполняете какие-то операции с разными типами (арифметика, сравнения, присваивания, ...), то компилятор приводит операнды к какому-то одному типу, а затем выполняет действие. Процессор не может выполнять операции с разными типами. Правила приведения типов описаны в стандарте языка.
    При автоматическом приведении типов могут возникнуть ситуации, когда компилятор должен приводить более широкий тип к менее широкому, а это неизбежно приводит к потере данных, как в вашем случае (size_t->int). Поэтому компилятор выдает ошибку, заставляя программиста дополнительно подумать над этим местом в программе. Как правило, компилятор прав в своих сообщениях и стоит к ним прислушиваться, хотя бывают и исключения.
  • Как сменить раскладку на английскую по умолчанию в Windows 11?

    @res2001
    Похоже на то, что вы вместе с указанной настройкой еще поменяли и "Язык интерфейса Windows" чуть выше на первом скрине.
  • Как определить занятость l2tp или ikev2 кем то?

    @res2001
    WebAirStudio,
    Только в моем случае VPN нужен, чтобы обойти NAT провайдеров пользователей. Нужно открыть определенный порт. Этот порт на 1 сервере только 1. Соответственно 1 сервер может использовать только 1 пользователь. Потому что если на входящий порт придет пакет, кому из 2 пользователей он предназначается?

    На сколько понял ВПН сервер у вас будет на Ubuntu в единственном числе. Все остальное - ВПН клиенты. Для ВПН клиентов абсолютно без разницы какой они используют порт, важен порт на ВПН сервере. На ВПН сервер к одному порту может подключится много ВПН клиентов с произвольных портов. ВПН сервер сам знает какому клиенту предназначается какой трафик и маршрутизирует его (то же самое делает и стек TCP/IP без ВПН).
    На одном компьютере может быть настроено и одновременно активно несколько клиентских ВПН сессий одного типа и они даже не будут друг другу мешать при правильной конфигурации.
  • Как думаете, с чем связана ошибка и как ее исправить?

    @res2001
    Vilfredo KKK, Я же не писал "везде". Там где это оправдано/нужно/логично.
    Например str_len явно просится в size_t.
    Ошибки компилятора могут указывать на потенциальные места, где, возможно, требуется использование size_t, Но это по любому ваше решение, а не мое и не компилятора.
    Учтите, что это потянет за собой и другие изменения. Например выражение i <= str_len начнет сравнивать знаковый тип с беззнаковым, что так же вызовет преобразование типов и скорее всего компилятор начнет ругаться тут, может и еще где-то. Так что i то же просится в size_t и т.п.
    Вариант с cast можно обезопасить явными проверками, что значение в size_t влазит в int и только после этого делать cast.
  • Как получить результат из exec с русскими символами?

    @res2001
    Artem Mamaev, Особой роли не играет. По умолчанию в винде в консоли стоит кодировка cp866 - старая досовская кодировка, даже в Вин11.
    Так что нужно перекодировать в нужную вам кодировку. Как это сделать на пыхе не скажу.
    Консольная команда chcp может показывать или менять текущую кодировку. Но эта команда работает только в cmd.exe и ее изменения действуют только на текущую консоль. В вашем случае консоль запускается, видимо, в скрытом режиме и не факт, что exec запускает cmd.exe.
  • Почему типы из заголовка cstdint доступны без его включения?

    @res2001
    Ни то ни другое.
    Возможно, этот заголовок подключается где-то внутри других заголовочных файлов.
    Этот файл у вас не единственное включение в вашей программе?
  • Проблема автозапуска exe файла?

    @res2001
    Каталог по умолчанию может, конечно, зависеть от способа автозапуска. Но скорее всего он будет c:\windows\system32. Так что без прав администратора туда ничего записать не получится (да оно и не нужно).
  • Как удалить папку по шаблону в консоле windows?

    @res2001
    JaFFFar, Ок. Значит не умеет в маску. Проверил, у меня есть rmdir в составе msys2, похоже это она умеет удалять по маске, но это не стандартная утилита. Можете найти любую другую с тем же функционалом. Не тащить же msys2 ради одной утилиты. Хотя с другой стороны, там в составе весь набор линуксовых утилит и много другое.
    Но если вам нужна работа "из коробки", то лучше использовать стандартный вариант.
  • Как удалить папку по шаблону в консоле windows?

    @res2001
    JaFFFar, Команда rmdir test_* по моему должна работать.
  • Почему компилятор не предупреждает о преобразовании int в uint8_t?

    @res2001
    Qubc, Можно добавить опцию -Wconversion, должно и во втором случае появиться предупреждение.
    -Wnarrowing - активизируется через -Wall, а -Wconversion нет.
    Это я про gcc.
  • Как войти в Windows 10 после неудачной смены домашнего каталога?

    @res2001
    Попробовал переименовать через MMC

    Что это значит? Через ММС можно делать 100500 различных действий. Опишите, как конкретно вы пытались переименовывать каталог.
    Для таких случаев полезно иметь еще одного пользователя на компе с админскими правами. Подойдет стандартный администратор, который по умолчанию заблокирован.
  • Как работает (примерно) отображение таблицы виртуальных функций в отладчике msvc?

    @res2001
    Qubc, Имеете ввиду формат отладочной информации? Да, он может быть другой.
    Но ничто не мешает отладчику MS понимать формат gcc. Наоборот, может быть сложнее, т.к. у микрософта, возможно, формат закрытый.
    Я тут темой не владею, давно не использую MSVS. Возможно ошибаюсь в своих предположениях
  • Как работает (примерно) отображение таблицы виртуальных функций в отладчике msvc?

    @res2001
    Qubc, Тут может быть интересно другое - если подсунуть микросовтовскому отладчику программу собранную gcc, например. Что он будет показывать? Предполагаю, что он вообще не покажет таблицу виртуальных функций.
    Если это так, то в примере отладчик пользуется предварительно известной информацией о содержимом указателя.

    Если проведете такой эксперимент, прошу написать сюда результат. Интересно будет узнать.
    Провел бы и сам, но не использую микрософтовский компилятор, а ставить его ради эксперимента что-то лень :)
  • Что можно делать с помощью программирование кроме создание прикладных програм?

    @res2001
    Или пойти в IoT, там то же программы и программисты.
    Или в промышленную автоматизацию. Или в разработку ОС, баз данных, фреймворки разные.
    Ентерпрайз в конце концов - на каждом предприятии куча задач, которые можно и нужно автоматизировать. И у меня складывается впечатление, что в массе своей руководство предприятий (крупных и средних) этого не понимает, а следовательно простор для деятельности программистов огромный. И в нашей стране, по большому счету, все только начинается.
    Сейчас какую железку современную не ковырни везде есть процессор, который надо сначала запрограммировать.
    Конечно, там где нужно обрабатывать большие объемы и/или на большой скорости, то подключают специализированные микросхемы (ASIC), в которых уже в железе реализован алгоритм. Но алгоритм этот сначала отлаживают в "обычных" программах и только потом переносят в железо.
  • Каковы правила конвертации указателя на массив неопределенной длины в указатель на массив определенной длины?

    @res2001
    Чтоб частично снизить зависимость от компилятора в подобных "тонких" вопросах, есть смысл задавать компилятору конкретный стандарт языка и опцию -pedantic, чтоб стандарт соблюдался более полно.
    Ну и -Wall -Wextra - это само собой, и может быть даже -Werror.
  • Почему часто можно встретить отступление от структурного подхода?

    @res2001
    Qubc, Честно говоря, не увидел тут отступлений от структурного подхода. Или вы очень жестко трактуете структурный подход. Относитесь ко всем "подходам" проще - это не более чем рекомендации, чаще всего полезные, но иногда и нет. В любом случае, решать вам.
    Лично мне первый вариант больше по душе. Сам пишу так же.
    Полностью согласен с Adamos
    Если же сильно хочется единый выход из функции можно соорудить нечто такое:
    void* pop () {
      void* result = nullptr;
      do {
            if (head == 0) {
                break;
            }
            result = head->data;
            LinkVoid* oldHead = head;
            head = head->next;
            delete oldHead;
      } while(0);
       return result;
    }

    Это, конечно, больше актуально, когда проверок на ошибки несколько и/или когда надо что-то освобождать после каких-то промежуточных действий в случае ошибки.
  • Как удалить переносы строк в файле?

    @res2001
    Батники не дружат с регулярками. Команда set их не поддерживает ни в каком виде.
    Немного умеет в них findstr, но самую малость и там не стандартный синтаксис. И вам это не поможет.
    Проще всего взять утилиту, работающую с регулярками и использовать ее. Есть, например, sed портированный под винду.

    Батником удалить переносы строк можно примерно так:
    @echo off
    Setlocal Enabledelayedexpansion
     Set Filename=script.js
    Set NewFileName=file.txt
    set "St="
    for /F "UseBackQ tokens=* delims=" %%A in ("%filename%") do (
      Set "St=!St!%%A"
    )
    Set "St=%ST:<тут символ табуляции>=%"
    Echo %St%>"%NewFileName%"

    for /f читает файл по строкам, просто складываем все строки в одну переменную. На этом этапе символы перевода строки удаляются. После цикла в команде set удаляем табуляции.
    Но есть ограничения - переменные в батниках не безразмерные. Если файл будет достаточно большой, то на каком-то этапе чтения файла, переменная St переполнится. Какое ограничение на размер переменной - точно не знаю, но довольно не большое, что-то в районе 4 Кб, по моему.
  • Подойдёт ли Unreal engine для создания интерактивной презентации?

    @res2001
    Вы пытаетесь из студенческого реферата сделать научную диссертацию. Это я о сложности задачи сделать презентацию в UE без соответствующих навыков.