Задать вопрос
  • Как вывести сумму всех элементов для каждого столбца, которые оканчиваются тройкой?

    @res2001
    m000gg m000gg, У вас выход за пределы массива тут v[i] += x[i][j]; на второй итерации внутреннего цикла. Я бы рекомендовал в v сразу добавить нужное количество нулевых элементов и только потом заходить в циклы.
  • Как вывести сумму всех элементов для каждого столбца, которые оканчиваются тройкой?

    @res2001
    m000gg m000gg, Не привыкайте к VLA.
    Вот это int matrix[n][n]; массив VLA (variable length array). В С++ их нет. Они тянутся из Си, потому что gcc позволяет это делать по умолчанию. Но если задать строгое соответствие стандарту параметрами компилятора, то ваш код не соберется. Так же он не соберется и микрософтовским компилятором, т.к. там в принципе нет поддержки VLA.
    Вместо массивов VLA рекомендую использовать вектор или динамичиские массивы.
  • Чем отличаются size_type, size_t, unsigned X?

    @res2001
    На эльбрусе в защищенном режиме (или как он там правильно называется) указатель вообще составной тип, в котором содержится в т.ч. и информация о типе, на который он указывыает.
  • Правильно ли я установил SFML в свой проект?

    @res2001
    CteplerMarinovich, В e:/cpp-libraries/SFML-2.5.1/include есть SFM/graphics.hpp?
    В include вы должны указывать пути к хедерам относительно каталогов, заданных на первом скрине.
    не кампилируется

    Ошибки компилятора покажите.
  • Правильно ли я установил SFML в свой проект?

    @res2001
    Если путь, указанный на первом скрине существует и в этом каталоге лежат файлы указанные в include, то не должно быть никаких проблем.
    Разве что, вы не правильно пишете include.
    Пример ваших include в студию.

    До других скринов дело не доходит пока что.
    SFML_STATIC, видимо, означает использовать статический вариант sfml, а не динамический.
  • Кто знает, с какого языка эта функция?

    @res2001
    $CAMEXEC_GET

    Вы предлагается по этой короткой строке определить язык программирования?
    Маловато информации.
    Это может быть shell, php, perl, что-то еще.
  • Почему файловая система NTFS, смонтированная в /media/folder, не позволяет запускать исполняемые файлы?

    @res2001
    karpo518,
    с таким значением fmask у меня вообще все файлы в каталоге становятся исполняемыми, включая тестовые документы и фотографии. И сделать их не исполняемыми не получается. Это не совсем то, что мне нужно. Или exec именно так и работает?

    Это же NTFS - виндовая файловая система. В NTFS как и на FAT32/FAT16 нет атрибута файла "исполняемый", как в никсовых файловых системах. Вместо этого возможность исполнения файла проверяется наличием соответствующего расширения.
    Примонтировав NTFS/FAT32/FAT16 в линукс вы можете сделать либо все файлы исполняемыми, либо наоборот - все не исполняемыми. Другого не дано. Линукс в свою очередь не работает по расширениям, исполняемый файл в линуксе (и прочих никсах) может иметь любое расширение или не иметь его.
    Именно такое поведение вы и видите благодаря опции exec. Изменение атрибутов отдельных файлов с помощью стандартных линуксовых утилит chmod/chown ни к чему не приведет, т.к. в этих файловых системах не поддерживается система прав на файлы в никсах (в FAT вообще нет никаких прав) и не поддерживаются система никсовых атрибутов в файлах.
  • В чем разница const char* и char const*?

    @res2001
    Adamos, Еще можно и так: char const * const * const
    Так что звездочка играет :)
  • В чем разница const char* и char const*?

    @res2001
    gleendo, Вообще без понятия.
    К тому же от компилятора к компилятору строка, возвращаемая typeid().name() может различаться для одного и того же типа. И не факт, что в другом компиляторе const не будет указан в первой позиции.

    Разработчики так пишут, видимо, потому что в книжках это наиболее частая запись. Но я встречал и второй вариант в реальных проектах.
  • В чём разница между статическими либами и пакетами?

    @res2001
    Только не .о! Или .so или .a
    Освойте утилиту pkg-config, она покажет все нужные пути. Ее можно использовать совместно с makefile или в cmake (наверняка и в других системах сборки то же). В параметрах надо задавать имя конфигурационного файла pkgconfig, который установила библиотека и pkg-config покажет всю нужную информацию для подключения библиотеки к своим исходникам.
    Если правильно помню, то в линухе конфиги pkg-config могут лежать в /usr/lib/pkgconfig, /usr/share/pkgconfig, и дополнительно в тех же каталогах, но с префиксом /usr/local. Возможно еще где-то, сейчас негде посмотреть. Конфиги представляют собой файлы с расширением .pc. Уважающие себя библиотеки ставят в своем -dev пакете в т.ч. и конфиг pkg-config. Названия файла конфига можно посмотреть в составе пакета с помощью dpkg -L libfftw3-dev или найти вручную в соответствующем каталоге. Как правило, название конфига как-то созвучно имени библиотеки.
    Посмотрите опции pkg-config, чтоб получать только нужную информацию.
  • В чём разница между статическими либами и пакетами?

    @res2001
    Не надо вам make & make install, у вас и так уже все стоит из пакетов. По возможности, стоит избегать этих команд и ставить все из пакетов.
    Просто подключайте библиотеку к вашей программе.

    Обычно в линуксах библиотеки разбивают на 2 пакета, в первом пакете по имени библиотеки находится сама скомпилированная библиотека, маны, что-то еще необходимое для работы библиотеки. В пакете с суффиксом -dev находятся файлы, необходимые для разработки программ с использованием этой библиотеки (например заголовки, конфиг для pkgconfig и т.п. программистские штуки).
  • Почему именно при таком обращении к матрице мы получаем все ее элементы?

    @res2001
    LevSvl08, Прочитал в комментариях, что двумерный массив у вас объявлен статически/автоматически.
    В этом случае тип matrix является int[10][10]. Используя первое разыменование мы снимаем первую размерность и получаем после *(matrix + i) тип int[10] и дальше имеем право разыменовывать еще раз.
    Для наглядности набросал примерчик, посмотрите вывод: https://gcc.godbolt.org/z/jn9W7vMG5

    Для статических/автоматических массивов лучше не использовать разыменование, чтоб не вводить самого себя в заблуждение. Используйте индексацию. Статический/автоматический массив это не то же самое что указатель, хотя работают местами похоже, но в некоторых случаях различаются.
    Например посмотрите чему равен sizeof автоматического массива и чему равен sizeof указателя (последняя строка примера).
  • Почему именно при таком обращении к матрице мы получаем все ее элементы?

    @res2001
    LevSvl08, Как у вас объявлен matrix? Приведите кусок кода с объявлением matrix и его инициализацией.
    Подозреваю, что это что-то типа:
    int **matrix;
    2 звездочки означает указатель на указатель на int. Соответственно возвращаемый тип первого разыменования *(matrix + i) это int*, а раз это указатель, то мы его можем разыменовать еще раз и только после второго разыменования получим значение элемента.
    Но при таком варианте матрицы надо иметь ввиду, что память выделять для подобной матрицы нужно следующим образом:
    matrix = new *int[N];
    for(int i = 0; i < N; ++i) { matrix[i] = new int[N]; }

    Соответственно аналогичным образом и удалять матрицу, освобождая каждый элемент первого массива. Посчитайте сколько вызовов new получается, столько же должно быть и вызовов delete[].
    По сути это не двумерный массив, а одномерный массив каждый элемент которого является массивом (массив массивов).
    Такой подход имеет право на существование, но он не оптимальный с точки зрения производительности.

    Если важна скорость работы с матрицей, то имеет смысл использовать подход описанный mayton2019 и выделять память под всю матрицу одним куском. Но в таком случае вы не сможете использовать операцию двойной индексации matrix[i][j] (догадайтесь почему), индекс придется вычислять вручную, способом указанным в ответе mayton2019.
  • Ростелеком блокирует трафик VPN?

    @res2001
    ВПН нельзя распаковать - это технология, и уж тем более ростелеком не реагирует на действия архиватора на вашем компе.

    Если у вас "браузерный" ВПН и если ВПН сервер не доступен, то любые действия в браузере будут "заблочены", но это не вина ростелекома.

    Все бесплатные услуги в интернет не дают никаких гарантий. Сегодня она может работать, завтра перестанет и претензии предъявлять не кому. Если вы за что-то не платите денег (ВПН например), то свыкнитесь с мыслью, что рано или поздно это перестанет работать. Если, конечно, это не ваш собственный ВПН, вами настроенный и работающий на вашем оборудовании.

    Что бы помочь с вашей проблемой нужно больше конкретики: Какая ОС у вас на компе? Какой ВПН используете? Предоставьте конфигурационные файлы ВПН клиента и сервера (если есть). Как вы проверяете доступность интернета?
  • Есть ли хорошие книги для глубокого изучения Linux?

    @res2001
    В этой книге описан Linux UserSpace API, т.е. набор интерфейсов с помощью которых прикладной пользовательский софт общается с ядром. Описание внутренностей ядра тут не найдете.
    Автор книги является писателем man страниц, так что книга, представляет собой печатный man по Linux API.
    Для прикладных программистов книга хорошая.
  • Возможно сделать иначе?

    @res2001
    LIREN, Смотрите пример по ссылке, там и заполнение и выравнивание и задание ширины полей есть. Немного поэкспериментируйте и читайте документацию. Все получится.
  • Что должен уметь делать Python разработчик?

    @res2001
    Математика в программировании нужна только в некоторых областях, где она используется. Например математические рассчеты и моделирование, ИИ, ЦОС, gamedev.
    Но для программиста математика полезна в том смысле, что она близка к программированию по "способу" мышления. Т.е. если у вас с математикой нормально, то велики шансы, что и программирование взлетит. Если нет - может не взлететь. Или взлетит, но придется приложить больше усилий. Как-то так.
    Букварь надо учить и таблицу умножения. А питон надо ... тренировать. Делайте больше практических упражнений. Придумайте свой проект и попытайтесь его реализовать.
  • Как корректно отслеживать завершение потоков?

    @res2001
    Не знал, что такое есть.
    Но надо иметь ввиду, что это
    These functions are nonstandard GNU extensions; hence the suffix "_np" (nonportable) in the names.

    т.е. не стандартное расширение gcc.
  • Как корректно отслеживать завершение потоков?

    @res2001
    CommonX,
    Есть ли вариант проще?

    Вы кроме первого абзаца моего ответа ничего не прочитали? Или варианты не подходят?

    Когда вы проверили другими средствами, что поток завершился, то вызов join не будет ждать. Чего ждать, когда поток уже завершен? Он сразу вернет управление.