• Почему нет данных в хэш-таблице?

    @res2001
    Developer, ex-admin
    malloc не зануляет выделенную память. После выделения mallocом в выделенной памяти содержится мусор.
    А у тебя в ht_hasItem определение занят ли элемент идет через сравнение с NULL. Когда выделил array надо обнулить массив memsetом или использовать calloc для выделения.
    Ответ написан
    2 комментария
  • Какая версия linux оптимальна для обучения?

    @res2001
    Developer, ex-admin
    Kentavr16, Ставь arch или gentoo - будет максимальное погружение в трудности практически с первого шага. Комьюнити в арче большое и мануалов то же хватает, в т.ч. и на русском. Будет трудно, но зато можно довольно быстро погрузиться в линукс.
    Ubuntu - для домохозяек - многое работает из коробки и много чем можно управлять из граф.оболочки. Задачи для обучения придется придумывать самому :)

    Вообще выбор дистрибутива не принципиален, на самом деле.
    Но есть некоторые нюансы.
    Сейчас во многих дистрибутивах системным менеджером является systemd. Но могут быть и другие варианты: systemv, upstart, ...
    В дистрах порожденных от debian пакетный менеджер обычно apt.
    В дистрибутивах от redhat - rpm.
    В arch - pacman.
    В gentoo - софт собирается из исходников, похоже на систему портов во FreeBSD.

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

    Еще один момент, отличающий разные дистрибутивы - политика обновлений. В некоторых дистрах перед релизом проходит период тестирования и т.п. (debian, ubuntu lts), в других - выдают на гора все самое горячее, не парясь о последствиях для пользователей (arch), есть и промежуточные варианты.

    Лично я использую убунту, т.к. изначально ее ставил сразу для работы, а не для обучения. И лишние проблемы были ни к чему. Обучался в процессе. Уже можно было бы и поменять на что-то, но сейчас не вижу в этом смысла.
    Ответ написан
    9 комментариев
  • Как можно задать перенаправление папки ProgramData при работе с RDS?

    @res2001
    Developer, ex-admin
    Путь к ProgramData задается в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList.
    Но менять расположение в работающей винде не стоит, т.к. там полно "внутренних" ссылок, а так же на ProgramData есть ссылки в других местах. При переносе большая часть ссылок будут недействительны. Трудно даже предположить, что отвалится после подобного действия.
    Вижу единственный рабочий вариант - изменение расположения ProgramData в процессе установки винды с помощью файла ответов, может есть и другие варианты задать новое расположение папки при установке.
    Но, на сколько я понимаю, перенос ProgramData вам ничего не дасть, т.к. эта папка одна для всех пользователей, она и в новом месте будет такой же.

    По AppData. Перенесите целиком профиль пользователя. Вместе с ним перенесется и пользовательский AppData. Ручной перенос профиля описывал тут несколько раз.
    Как вариант - перенести конкретную папку из AppData и создать на прежнем месте ссылку в новое местоположение.
    Но, пользовательская AppData находится в пользовательском профиле и она уже изолирована от других пользователей. Так что о какой дополнительной изоляции идет речь.

    И еще. Динамические библиотеки (на сколько я понял речь идет о такой библиотеке) открываются в режиме многопользовательского доступа. Т.е. несколько программ могут легко использовать одну и ту же библиотеку. Это так работает всегда на системном уровне и изменить это нельзя.
    Это значит, что внутри библиотеки блокируется какой-то другой ресурс, который становится не доступным другим пользователям. Вам надо выяснить у разработчика программы что там блокируется и как с этим бороться.
    Ответ написан
  • Будет ли скомпилированный код C++ работать на всех архитектурах процессора?

    @res2001
    Developer, ex-admin
    Даже бинарник для х64 не будет работать под х32, что уж говорить о принципиально разных архитектурах.
    В исполняемом файле содержатся машинные команды для конкретной архитектуры процессора.
    Для другой архитектуры нужен другой исполняемый файл.
    То же самое актуально и для разных ОС (бинарники для линукс и винды не совместимы). Но, обычно, есть варианты запустить бинарник от другой ОС - виртуализация, wine в линукс, WSL в винде.

    Более того, например, если у вас приложение х64 и вы используете какую-то специфическую фичу процессора, которая есть только в определенных моделях процессора, то приложение будет корректно работать только на процессорах поддерживающих эту фичу. Если нужно, в приложении можно предусмотреть проверку процессора и если фича не поддерживается использовать какую-то универсальную реализацию.
    Ответ написан
    Комментировать
  • Как структурировать код?

    @res2001
    Developer, ex-admin
    Одинаковые участки кода надо выделить в отдельные функции, передавать в функции нужные аргументы и возвращать результаты. Частично это у вас уже сделано с f21, но результат можно улучшить.
    Ответ написан
    Комментировать
  • Как или где онлайн можно научиться кодить игры правильно (мультитрединг, структуирование итд)?

    @res2001
    Developer, ex-admin
    Читать книги и статьи про параллельное программирование, архитектуру ПО, паттерны проектирования. Разбираться с непонятными вопросами, применять прочитанное в своих проектах.
    Никто не сделает из тебя хорошего разработчика, кроме тебя самого.

    По видео курсам:
    По параллельному программированию есть хорошие лекции на https://compscicenter.ru/ лекции ведет Евгений Калишенко.
    Хорошие лекции на эту и другие темы связанные с программированием выкладывает канал "Лекторий ФПМИ" на ютубе.
    В перечисленных вопросах не стоит акцентировать внимание на разработке игр, т.к. все это применяется повсеместно в проектах любой направленности.

    К перечисленным темам могу добавить еще несколько, на которые стоит потратить свое время: сетевое программирование, асинхронное программирование, использование СУБД.
    Ответ написан
    4 комментария
  • Работа конвейера в windows с python?

    @res2001
    Developer, ex-admin
    Вместо входного файла нужно использовать stdin и читать данные из него.
    Ответ написан
    Комментировать
  • Безопасен ли домашний проброс портов?

    @res2001
    Developer, ex-admin
    Безопасен ровно в той мере, в какой безопасно программное обеспечение, слушающее проброшенный порт.
    Самому роутеру через проброс ничего не угрожает, но если сломают слушающее ПО и получат управление компом, то дальше можно делать все что угодно в вашей сети.
    Все интернет сервисы слушают порты и вроде у многих все нормально, но не у всех :)
    Ответ написан
    Комментировать
  • Как запустить сеанса другого пользователя из под своего?

    @res2001
    Developer, ex-admin
    Запустите любое приложение из-под этого пользователя.
    Ответ написан
    Комментировать
  • С чего начать изучение С++?

    @res2001
    Developer, ex-admin
    Подойдет любой толстый учебник по плюсам. Но смотрите, чтоб в книге был описан хотя бы С++11.
    Не все книги из того списка переиздавались после 2011 года, а значит в них не учтены изменения современных стандартов.
    Знаю, что Лафоре из списка переиздавался в 2018, но стоит посмотреть какие изменения были в этом издании.

    В принципе база осталась той же, что и до С++11, но в этом стандарте добавились серьезные улучшения, желательно изучать уже с этими нововведениями. Уже есть и С++14/17/20. 14 - это исправление ошибок 11, ничего кардинально нового там нет. В 17 и 20 добавились некоторые фичи, о них можно почитать в интернете, учебников, учитывающих эти стандарты, по моему еще нет.
    Ответ написан
    Комментировать
  • Стоит ли проходить курс по С++ на яндекс практикуме?

    @res2001
    Developer, ex-admin
    Купите книжку и почитайте. Лафоре вполне годный учебник для начинающих. О том как устроен внутри С++ и все новые фишки он не расскажет, но начать программировать с него можно.
    Про сложные вещи в С++ вообще довольно мало книг, особенно на русском. В основном информация берется из статей в интернете. Но до понимания "сложных вещей" еще надо самому дойти, изучая базу и практикуясь.
    В интернете полно открытых проектов, можете присоединиться к любому, который вам понравится. Так вы и практику в программировании получите и поработаете над более крупным проектом.
    Ответ написан
    Комментировать
  • Почему при умножении матриц, вводя разные значения при каждом новом запуске программы я получаю одни и те же размеры(не правильные)?

    @res2001
    Developer, ex-admin
    Хотелось бы больше конкретики, т.к. чтение у вас в двух функциях CreatMatr() и ReadMatrix().
    В CreatMatr() вы не освобождаете динамически выделенную память - это утечка. Используйте вместо "сырого" массива вектор.
    Так же не понятно, зачем вы вызываете CreatMatr() 3 раза?

    Предположу, что проблема в том, что в CreatMatr() вы не возвращаете вызывающему коду считанные значения n, m, l, поэтому в main эти значения никак не изменяются и равны 1.
    Ответ написан
    5 комментариев
  • Как выполнить git clone если в адресе есть пробел?

    @res2001
    Developer, ex-admin
    Удвойте знак процента - процент служебный символ, его надо экранировать
    Ответ написан
    Комментировать
  • Обязательно ли кабель должен быть проведён к роутеру через модем или использование модема необязательно?

    @res2001
    Developer, ex-admin
    Все зависит от того какой кабель. В роутере обычно разъемы Ethernet (8 или 4 жильный кабель с разъемом RJ45) и в них можно сунуть только Ethernet (ни оптику, ни телефонную линию, и т.д.).
    Если в квартиру заходит что-то отличное от Ethernet, то требуется устройство, которое будет преобразовывать один тип сигнала в другой (например оптику в Ethernet, или DSL в ethernet), отсюда появляются дополнительные устройства на входе в роутер. Эти дополнительные устройства не всегда называются модемами, для оптики, например, устройство имеет более общее название медиа конвертер (преобразователь интерфейсов). Модем это то же медиа конвертер.
    Бывают модели роутеров, которые имеют внешний порт не Ethernet (оптика, DSL). Такие роутеры, как правило, используются именно там где входящая линия именно этого типа. Тогда, конечно, дополнительное устройство не требуется.
    Так же часто на входе уже имеется Ethernet, тогда такой кабель можно напрямую втыкать в роутер, без посредников.
    Ответ написан
    Комментировать
  • Скорось wifi не соответствует тарифу?

    @res2001
    Developer, ex-admin
    Вай-фай он разный. Есть несколько стандартов, отличающихся скоростью.
    Когда устройство подключается к вай-фай оно определяет по какому из стандартов будет работать. Определяется это в т.ч. в зависимости от внешних факторов, например от уровня сигнала, от количества помех и т.п.
    Если у вас много вай-фай точек в округе, то все они засирают одно и то же эфирное пространство и мешают друг другу, что снижает скорость передачи данных. Так что далеко не факт, что в ваших условиях ваше оборудование сможет выдать максимально возможные для него скорости.
    Обычно для обхода этой проблемы применяют двухдиапазонные роутеры (ну и клиентские устройства само собой), которые могут работать еще и на частоте 5 Ггц. Такие устройства стоят дороже, а потому встречаются реже и соответственно меньше помех создают друг другу на частоте 5 ГГц. Но, опять же, далеко не факт, что в ваших условиях это как-то вам поможет.
    Ответ написан
    Комментировать
  • Как включить WOL через VPN?

    @res2001
    Developer, ex-admin
    Широковещательные пакеты (а пакет WOL широковещательный) не маршрутизируются между сетями.
    Для обхода этого ограничения можно поднять NAT на ВПН интерфейсе ВПН сервера и сделать проброс UDP пакетов на WOL порту на широковещательный адрес подсети.
    В программе отправки WOL пакета соответственно надо указывать ВПН адрес ВПН сервера.
    По такой схеме работает "WOL over Internet". Именно для такого варианта предназначена опция "Internet" в вашей программе, но она требует поддержки со стороны NATа.

    Гораздо проще реализовать какой-то вариант удаленного запуска программы, отправляющей WOL с компа в сети. Для этого надо найти утилиту командной строки, которая умеет в WOL ну и вызвать ее удаленно с соответствующими параметрами.
    Ответ написан
    Комментировать
  • Обход NAT вполне реален в нынешних реалях?

    @res2001
    Developer, ex-admin
    Согласен с предыдущими отвечающими.
    Но, можно посмотреть в сторону IPv6. С его адресной базой NAT в принципе не нужен, можно раздавать белые адреса каждому "утюгу". Вот только не уверен, что провайдеры именно так поступают.

    Фаервол в любом случае может заблокировать трафик, хоть с NAT, хоть без NAT, хоть IPv6 - роли не играет.
    Обычно, что бы обходить фаервол просто используют "стандартные" порты на сервере, которые, как правило (но не обязательно), везде открыты, например TCP/80 (http) или TCP/443(HTTPS). Это не дает 100% гарантии прохождения фаервола, но шансы повышает.

    И кстати, если мы говорим об IPv4, то для того, что бы обойти NAT нужно использовать UDP, а не TCP. На TCP NAT не обойти.
    На счет STUN и т.п. Там смысл в том, что сам STUN сервер с белым IP нужен только для получения клиентами адреса и порта "сервера", дальнейшая передача трафика идет напрямую между клиентом и сервером. NAT в этом случае не обходится, а просто клиентами используется та же дырка в NAT, которая образовалась при подключении сервера к STUN.
    Ответ написан
  • Какой bat файл нужен для проверки состояния USB при включении?

    @res2001
    Developer, ex-admin
    Помнится где-то у микрософта была утилита командной строки devcon. Она позволяла много чего делать с устройствами. Посмотрите, может и вам поможет.
    Она умеет включать/отключать устройства, показывать состояние и т.п.
    https://docs.microsoft.com/en-us/windows-hardware/...
    Ответ написан
    Комментировать
  • Существют ли IDE с одновременной командной разработкой?

    @res2001
    Developer, ex-admin
    Думаю что нет.
    Сомневаюсь, что это нужно с практической точки зрения, т.к. если несколько программистов будут править один и тот же файл и взимозависимые участки кода, то они будут друг другу мешать, так что в итоге править будет только один, а остальные ждать своей очереди.
    Если же участки не зависимые - то с этим легко справляются системы контроля версий и "онлайн" тут нафиг не нужен.
    Ответ написан
    2 комментария
  • Как из папки раскидать все файлы по подпапкам по 10 шт?

    @res2001
    Developer, ex-admin
    но как указать чтоб скрипт работал с конкретной папкой

    Вам bat и cmd файлы то же надо раскидывать по каталогам?
    ...
    set "dirname=./test"
    ...
    For %%A In ("%dirname%/*.bat" "%dirname%/*.cmd" "%dirname%/*.mp4") Do (
    ...
        move /y "%dirname%/%%~A" "%DirN%"
    ...

    Зачем вам robocopy? С переносом файлов вполне справится move.
    Ответ написан
    Комментировать