• Как работает (примерно) отображение таблицы виртуальных функций в отладчике 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 без соответствующих навыков.
  • Вопрос про указатели. Правильно ли я понимаю?

    @res2001
    Не путайте объект вектора и данные вектора.
    Объект вектора - это некая дополнительная информация, необходимая классу vector для работы, например, количество элементов массива занятого данными, общий размер массива, указатель на массив, что-то еще.
    Данные вектора - это собственно массив данных.
    Так вот, данные вектора всегда лежат в куче, т.е. массив всегда выделяется динамически.
    А вот объект вектора может быть где угодно и в куче и на стеке.
    void func() {
      vector<type> name1;
      vector<type> *name2 = new   vector<type>;
     }

    В примере:
    name1 - объект вектора лежит на стеке.
    name2 - объект вектора лежит в куче, на стеке лежит указатель на объект вектора.
    Если определить вектор вне функции в глобальной области видимости, то объект не будет лежать на стеке - он будет находится в сегменте bss или data - это не стек и не куча.
  • Как решить ошибку (OS errno 2 - No such file or directory)?

    @res2001
    Возможно где-то в скрипте потерялся кусок пути:
    C: erver\data\mysql\data\
  • Можно ли создать пустую структуру, а потом её заполнить внутри функции?

    @res2001
    Acaunt, Приходите как сможете.
    Не плохо было бы увидеть задачу, которую вы пытаетесь решить.
    Сейчас мы пытаемся помочь вам в решении некоторой локальной задачи, которую вы сформулировали, пытаясь решить проблему глобальной задачи.
    Вероятнее всего, вы не правильно ставите задачу и формулируете проблему. Если вы озвучите общую глобальную задачу и покажете ваш код, ее решающий, то мы попытаемся найти реальную проблему и, возможно, поможем ее решить.
    Ваши попытки объяснить ситуацию без кода вообще никак не помогают, только еще больше запутывают.
  • Как развернуть Astra Linux с сохранением защиты оболочки?

    @res2001
    x86_64, ARMы и Эльбрусы официально поддерживаются. Так что видимо нет особых проблем установить на писюк с Байкалом.
  • Как сохранить текст из окна батника в txt файл?

    @res2001
    Михаил Компас,
    Получилось сохранить в txt файл таким кодом:

    Это обычное явление. Есть 2 стандартных потока вывода stdout и stderr.
    Когда вы делаете >output.txt или 1>output.txt вы перенаправляете stdout в файл. stdout имеет идентификатор 1. Если пишете 2>output.txt - перенаправляете stderr в файл.
    Какая программа в какой поток пишет не угадаешь, нужно тестировать. Многие программы пишут сразу в оба потока, как можно догадаться по названию потоков обычный вывод в stdout, а ошибки в stderr. С помощью перенаправления можно развести потоки в разные файлы. Бывает удобно.
    Есть и универсальный вариант: 1>output.txt 2>&1
    Тут в файл перенаправляется stdout, а stderr перенаправляется в stdout, таким образом весь вывод оказывается в одном файле.
  • Почему не работает пузырьковая сортировка двумерного динамического массива?

    @res2001
    War4, Т.е. этот код не ты писал?
    Правильно написанный приведенный участок кода должен менять местами 2 элемента массива (Arr[i][j + 1] и Arr[i][j]). У тебя этот участок кода написан не правильно и этого неделает. Т.е. вот эти 3 строки по факту никаких изменений в массив не вносят. Наверняка компилятор это все удалит при включенной оптимизации. Как может отсортироваться массив без его изменения?
  • T440p Lenovo, возможно ли установить ОС Windows 10 или 11 22H2?

    @res2001
    Alexander Gor,
    Windows 10 1803 совместимы с 22H2?

    Помнится, когда вышла Вин10, у меня был ноут на Вин8.1. Через год, когда для Вин10 уже вышли первые крупные обновления, я решил, что меня задолбала восьмерка и проапгрейдился до Вин10 с помощью стандартного WIndows Update. После обновления, все драйвера, работавшие на Вин8.1, продолжали работать на Вин10.
    А уж номера сборок в рамках одной версии винды вообще никак не влияют на драйвера, поэтому их никогда не указывают в драйверах.
    Кстати, Вин11, на мой взгляд, больше маркетинговый апгрейд, чем какой-то большой апгрейд ОС. Так что и тут драйвера, почти наверняка, встанут нормально. Хотя, видимо, с точки зрения маркетолога перемещение Task Bar в центр - это хороший повод для увеличения номера мажорной версии.
  • T440p Lenovo, возможно ли установить ОС Windows 10 или 11 22H2?

    @res2001
    Alexander Gor, Ок. У каждого свои критерии выбора.
    На счет драйверов - даже если с дровами от леново, что-то не заладится, пойдете на сайт производителей чипов и возьмете их актуальные драйвера. Правда иногда производители ноутов могут вносить какие-то свои изменения/настройки в стандартные драйвера.
  • T440p Lenovo, возможно ли установить ОС Windows 10 или 11 22H2?

    @res2001
    У меня другой ноут от леново, свежий 22 года выпуска. Все драйвера встали на Вин11 как родные. У меня даже мысли не было, что драйвера от Вин10 не встанут на Вин11 (возможно зря).

    Кстати, не нашел на сайте леново модель T440p из актуальных моделей. Возможно они ее переименовали как-то (или вообще модель больше не выпускается). Но это значит, что вы берете довольно старую сборку. Есть ли в этом смысл? Видимо, этим можно объяснить и отсутствие свежих драйверов - зачем, если модель больше не выпускается.
    Вообще, на мой взгляд, Lenovo ThinkPad серии Т очень достойные ноуты.
  • Как скомпилировать C в FASM?

    @res2001
    Что у фасма какой-то свой синтаксис? Вроде у фасма синтаксис Intel. На сколько знаю есть ассемблерные синтаксисы Intel и AT&T для x32. Не силен в ассемблере.

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

    @res2001
    Можно запихнуть Materials в unordered_map, ключом будет ID.
    Другой вариант - считывать Materials из базы в vector. А в unorderd_map ссылки (или указатели) на объекты из вектора.
    Второй вариант может быть интересен, если поиск объекта надо будет вести не только по ключу. Тогда можно сделать несколько мапов со ссылками на одни и те же объекты из вектора, но с разными ключами.
  • Почему после билда CMake функции из других файлов не вызываются?

    @res2001
    cmake в итоге вызывает компилятор для сборки.
    Так что смотрите консоль с вызовами компилятора.
    Все ли библиотеки подключены, может есть ошибки при сборке и т.п.
    Если бы функции не было в сборке, то компилятор бы выругался на отсутствующий символ и исполняемый файл не собрался бы.