Задать вопрос
  • Можно ли организовать печать на сетевой принтер из браузера?

    @res2001
    twiniii, Севрером печати является тот же самый спулер ОС. И у него один стандартный интерфейс для получения заданий, который используется в ОС.
    На предприятии, если есть АД, то все настраивается через политики. Так же и принтера устанавливаются на клиентов - никто не бегает и не расставляет руками.
    Без АД, все гораздо скучнее - на каждого клиента ставят дрова руками, либо как-то автоматизируют процесс установки подручными средствами.

    Есть еще такая штука: IPP.
  • Почему массив malloc не наполняется?

    @res2001
    for (int b = 0, c = 0; b < n; b++) {
            if (mas[b] < 0) { 
                mas_otr[c] = mas[b]; 
                ++c;
            }
  • Почему массив malloc не наполняется?

    @res2001
    you_go_home,
    Теперь все под растчет создается, но не заполняется.

    Потому что b - это индекс по массиву mas, по mas_otr нужен свой собственный индекс в третьем цикле main().
    Вы еще видимо отладчиком не научились пользоваться? Пора!
  • Почему массив malloc не наполняется?

    @res2001
    you_go_home,
    В mas_otr[b] = mas[b] - выход за границы массива в случае если b > l
  • Почему массив malloc не наполняется?

    @res2001
    Прикольно, что в текущей комбинации типов j и mas_otr в первом цикле sort() все работает правильно (только для х32 варианта сборки).
    Но это только из-за того, что вам повезло так ошибится. Вряд ли имелось ввиду то что написано. Так что исправляйте.
  • Почему массив malloc не наполняется?

    @res2001
    5.разберитесь с sort() вы там запутались с указателями и индексами.
    i,j,c должны быть int
    mas_otr - int*
  • Где можно купить "белый" IPv4 адрес "навсегда"?

    @res2001
    Борис, На сколько я понимаю в США большие проблемы со свободным пулом IPv4, так что у них в этом плане вряд ли будет стабильно.
    В "долгосрок" я бы вообще не думал про IPv4, только IPv6.
    Завязывайтесь на крупных поставщиков, у них меньше шансов умереть с годами.
    В РФ можно на Ростелеком посмотреть - самые крупные в стране, да еще и гос.контора. Думаю до следующей революции можно с ними спокойно работать. Это не реклама, у меня от ростелекома только домашний интеренет :-)
  • Как подключить стороннюю библиотеку к проекту Qt через CMake?

    @res2001
    Если при вызове cmake задать параметр: -DCMAKE_VERBOSE_MAKEFILE или в самом CMakeLists.txt задать set(CMAKE_VERBOSE_MAKEFILE ON)
    то cmake будет печатать на экран весь вывод, в выводе можно увидеть и вызов компилятора с параметрами и там уже можно посмотреть чего не хватает или что что-то не правильно добавилось в аргументы. Полезно для отладки сборки и обучения.
  • Как подключить стороннюю библиотеку к проекту Qt через CMake?

    @res2001
    Если что текущий каталог (где лежит CMakeLists.txt) лежит в переменной ${CMAKE_CURRENT_SOURCE_DIR}
  • Как подключить стороннюю библиотеку к проекту Qt через CMake?

    @res2001
    Путь указывайте относительно каталога, где лежит текущий CMakeLists.txt. В cmake относительные пути отсчитываются от этого каталога.
    Например так: muParserProject/include, если CMakeLists.txt лежит в родительском каталоге muParserProject
    В кавычках или без - не принципиально.
  • Как подключить стороннюю библиотеку к проекту Qt через CMake?

    @res2001
    Egorithm, target_include_directories - для инклудов
    target_link_directories - для задания каталога поиска библиотек
    Все операции, которые можно сделать с конкретной целью начинаются на target_
    По ссылке масса всего интересного :)
  • Почему ругается Visual Studio c++?

    @res2001
    Евгений Шатунов, Roman, Спасибо за дополнения.
    Обобщу:
    Применительно к вопросу - нужно const заменить на constexpr, тогда должно компилироваться без ошибок на всех компиляторах поддерживающих С++11.
    Почему const ведет себя по разному на разных компиляторах:
    1. объявление массива так как его привел Terminator123321 не является С++ совместимым (спасибо Евгений Шатунов).
    Вот почему - В С++ нет массивов переменной длинны (VLA). Они есть только в С99 и выше. Обычные статические массивы в С++ можно задавать только используя константное выражение в качестве размерности. const не является константным выражением (а constexpr - это оно и есть). Константное выражение вычисляется на этапе компиляции, что не обязательно верно в случае const (собственно по этому const - это и не константное выражение).
    Таким образом приведенное объявление массива строго говоря является массивом переменной длины, а не обычным статически массивом Си.
    Как было сказано Евгений Шатунов компиляторы могут более углубленно проверить выражение инициализации в const и распознать его как constexpr. Но это никак не регламентируется стандартом и тут каждый компилятор ведет себя как захочется.
    2.Микрософтовский компилятор никогда полностью не поддерживал современные стандарты Си (С99 и выше), поэтому массивов переменной длины он не умеет, отсюда ошибка в MSVS.
    gcc поддерживает современные стандарты. По умолчанию, если при компиляции не указано строго придерживаться стандарта языка, то он разрешает в коде С++ использовать VLA. В общем это такое расширение gcc.
    3.Для статических массивов в С++ используйте класс std::array, впрочем на сколько я понимаю это не отменяет необходимости использовать constexpr в качестве размерности массива.
    В качестве обучения нужно попрактиковаться и с "сырыми" массивами, но в реальном коде лучше юзать классы стандартной библиотеки.

    PS: Так же как и # проверил код в MSVS - компилируется. Даже с учетом того, что отключены все оптимизации и включена опция использовать C++14. Судя по дизасемблеру msvc все таки распознал это выражение как constexpr и не выругался.
    Стоит MSVS 2017 последний раз обновлял уже в этом году, так что версия можно считать свежая. В более поздних версиях компилятора результат вполне мог быть и другим. За одно проверил - msvc так и не научился в VLA.
    Вероятно что и gcc по умолчанию способен распознать const int n = 10 как constexpr. Протестировал на mingw то же собирается без ошибок, даже с -std=c++11 -pedantic -Wall -Wextra. Дизасемблер тут уже не смотрел.
  • Как организовать рабочее окружение разработки с использованием домашнего сервера?

    @res2001
    Но на выходе получится медленное нечто

    Внутри локальной сети скорости должны быть вполне приемлемыми. Особенно по проводам, если 1 Гбит есть.
    Для доступа из инета этот вариант, конечно, не годится. Но в вопросе нигде не звучало, что нужен доступ из вне.
  • Как понять, что ты уже умеешь программировать?

    @res2001
    все время обращаюсь к справке

    Это нормальная ситуация и вряд ли когда-то будет по другому.
    И не только к справке, к гуглу, к stackoverflow и т.д. и т.п.
  • Как свапнуть строки в си?

    @res2001
    Chemodan228, Эти const относятся к строками. Сами строки константные и не изменяются, а вот указатели вполне можно менять.
    const char *str; // не константный указатель на константную строку
    const char * const str; // константный указатель на константную строку
    char * const str; // константный указатель на не константную строку

    Ну и добавьте сюда сами еще варианты для указателя на указатель на char. В этом случае вообще возможно 3 раза в типе использовать const и все 3 будут означать разные типы.
    Почитайте что-нибудь про указатели - это самая сложная тема в Си ну и самая нужная, если вы дальше планируете развиваться как Си программист.
  • Как свапнуть строки в си?

    @res2001
    Chemodan228,
    #include <stdio.h>
    
    void swap_str(const char **s1, const char ** s2)
    {
      const char *stmp = *s1;
      *s1 = *s2;
      *s2 = stmp;
    }
    
    main()
    {
      char *str1 = "Hello";
      char *str2 = "world";
      printf("%s %s\n", str1, str2);
      swap_str(&str1, &str2);
      printf("%s %s\n", str1, str2);
    }
  • Как свапнуть строки в си?

    @res2001
    Chemodan228, т.е. обменять?
    Ну поскольку в Си строки это указатель на char, то просто свапните указатели на соответствющие строки. С самими строками ничего делать не нужно. Точно так же как свапали бы целые значения.