Сергей Бровко, У меня то же установлено некоторое количество софта, которым я пользуюсь и не хотелось все переустанавливать. Т.к. торопиться мне было не куда, то каждый раз я примерно неделю по вечерам пытался решить проблему первый раз вообще месяц убил, правда с перерывами и там уже какой-то спортивный интерес появился.
Переустановка винды с накатом всего софта с нуля заняла 1 день вялотекущего процесса.
Добавлю - ознакомиться со стандартной библиотекой Си не составит труда - она не большая.
Пихать биты в порты с тем же успехом можно и на плюсах.
Не знаю, что там с ардуино, но для других МК есть современные компиляторы С++.
Если проект планируется достаточно большой, то лучше сразу начинать на С++ - это сэкономит время и развяжет руки - потому что стандартная библиотека на С++ гораздо богаче Сишной.
Маленький - можно на Си реализовывать.
andrey_levushkin, CHUNK_SIZE - это количество элементов на которое требуется увеличить массив.
Правильная запись realloc будет такой:
if (i >= N)
{
arr = realloc(arr, sizeof(int)*(N + CHUNK_SIZE));
N += CHUNK_SIZE;
}
В malloc и realloc - размер выделяемой памяти указывается в байтах, поэтому всегда в этих вызовах нужно из количества элементов переводить в байты умножением количества элементов на размер элемента. https://en.cppreference.com/w/c/memory
Увеличивать размер лучше сразу на несколько элементов (CHUNK_SIZE), чтоб не заниматься этим для каждого нового элемента. Часто встречающийся подход, когда размер массива увеличивают в двое.
Timbour88, Каким конкретно ВПНом вы пользуетесь? Дело в том, что ВПН - это обобщенное название технологии, реализаций много и они друг от друга отличаются.
При подключении к ВПН адрес не меняется, а добавляется еще один адрес - внутренний адрес ВПН (может и не добавляться - зависит от реализации ВПН). Но в некоторых случаях, чтоб компьютер продолжал отвечать по старому адресу требуется предпринять определенные действия (см. комментарий Drno ).
Попробуйте в клиенте RDP (в винде это "Удаленный рабочий стол") указать внутренний ВПН адрес удаленного компа, а не то что вы использовали до этого.
adrash kh, Это значит, что порт 22 по указанному адресу никто не слушает.
Либо адрес не правильный, либо git не работает по протоколу ssh на данном хосте. Попробуйте HTTP или GIT протокол для клонирования.
Выражение:
(double)rand() / (double)RAND_MAX
дает в результате число в диапазоне [0;1], добавьте к нему 1 и получите диапазон [1;2].
Чтоб получить указанный вами диапазон сделайте так: x = 1. + (double)rand() / (double)(RAND_MAX + 1)
Результат rand() преобразуется в double с помощью записи (double)rand(). После этого уже все остальное вычисляется с плавающей точкой.
Откройте учебник по языку и почитайте про преобразование типов.
Если канал будет стабильно нагружен и требуется высокая скорость, то есть смысл в проводной связи.
Это будет надежнее и скорость выше.
Можно по воздуху кабель кидать.
Наймите грамотных монтажников.
Почему вы решили разделить команды каналом (|)? - это, видимо, не то что вам нужно.
Я думаю, нужно просто запустить две команды socat параллельно в разных окнах cmd.
Перемещение актуально, если вы в проекте используете С++11 и выше. В С++03 еще не было семантики перемещения.
Вот тут рассказано о семантике перемещения и в разделе "Перегрузка для lvalue/rvalue" приведен класс со всеми нужными перегрузками.
В вашем случае можно и операции копирования и конструктор перемещения определить пустыми в секции private, как вы это сделали с не нужными конструкторами.
Вообще в С++11 и выше для таких целей есть спецификатор delete, который говорит компилятору, что не нужно генерировать метод "по умолчанию". Например:
Переустановка винды с накатом всего софта с нуля заняла 1 день вялотекущего процесса.