• Как присвоить integer элементу массива символ char?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    memset(arrayC, '-', sizeof arrayC);

    Делает не то, что вы ожидаете. sizeof arrayC будет равен размеру указателя, поскольку в функцию массив передаётся как указатель, несмотря на то, что в прототипе написано int arrayC[3][3].
    if( x == arrayI[i][j])

    Вы не показали как инициализирован массив arrayI, поэтому неизвестно, когда это условие сработает.

    Как присвоить элементу любому этой матрицы любой символ?

    Ровно так как вы и делаете -- arrayC[i][j] = 'W';
    Ответ написан
    5 комментариев
  • Дублирование кода в целях makefile, как избежать?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как мне избавится от дублирования кода, который одинаковый для нескольких целей, однако, отличается именами файлов(пусть имена файлов совпадают с названием целей)?

    Можно написать макрос-генератор целей. Изменяющиеся параметры можно передать как параметры макроса, внутри на них можно ссылаться по номеру. Например так:

    define generate-targets
    $(1): 
     make -j5 TARGET=unwired BOARD=$$(BOARD)/$$(CPU) -f makefiles/Makefile.$$@
     ../bootloader/generate-metadata/generate-metadata $$@.bin 0x0 0x01A00001 1
     srec_cat firmware-metadata.bin -binary $$@.bin -binary -offset 0x100 -o $$@-ota-image.bin -binary
     rm $$@.hex
    
    $(1)-fb: $(1)-CLEAN
      ../../tools/backdoor-bootloader.py -e -w -v $(1)-firmware.hex
    
    $(1)-f: $(1)-CLEAN
     /Applications/ti/Uniflash/flash_cc1310.sh $(1)-firmware.hex 
    
    $(1)-ota: $(1)
     scp $(1)-ota-image.bin root@192.168.20.187:/root/unwired_smarthome
    
    endef


    Внутри макроса нужно экранировать $ заменяя его на $$.
    Этот макрос можно вызывать в нужном месте следующим образом:

    $(eval $(call generate-targets,ubrige))

    Сгенерированный в этом месте код будет эквивалентен коду из вопроса.
    Ответ написан
    Комментировать
  • Почему в конце имен symlink вопросительный знак и почему они не работают?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    почему в конце имен symlink вопросительный знак и почему они не работают?

    Потому что такие имена файлов вы прочитали из $file оператором read:
    while read line ; do ... done < $file

    Потому и не работают, что какой-то мусор в конце. Покажите что выводит hexdump -Cv $file
    Ответ написан
    3 комментария
  • Как найти количество различных элементов в рандомном массиве (С++)?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    В массиве M(k) много совпадающих элементов. Найти количество различных элементов в нем.

    Уточни пожалуйста, в массиве 1, 1, 2 сколько различных элементов -- 1 или 2?
    Я попытался было понять по твоему коду, но не смог.

    for (int h=0; h < n+1; h++) {
    if (a[i] != a[h] && i!=h)


    Вылез за пределы массива a.
    Ответ написан
  • Как связать локальный репозиторий с удаленным (на bitbucket)?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Склонировать проект из git, скопировать свои изменения сделанные в распакованном архиве поверх, закоммитить.
    Ответ написан
    Комментировать
  • Как устранить утечку?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    return *new obj (this->a + xa.a);

    Заменить на
    return obj (this->a + xa.a);

    P.S. с исключениями-то разобрался?
    Ответ написан
    2 комментария
  • Зачем нужны прототипы в C++?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    1)Заголовочные файлы: в них собраны прототипы функций библиотек?(и все?)

    Содержимое заголовочного файла просто подставляется в то место где написано #include. Поэтому туда можно поместить всё что угодно. Традиционно библиотеки помещают туда объявления классов, функций и глобальных переменных и определения макросов.

    2)Как компилятор находит нужные встроенные функции по прототипам если мы не включаем в cpp файл библиотеки а лишь подключаем заголовочный файл с помощью #include?

    Компилятор их не находит. Не его это работа. Он просто помещает в объектный код вызовы ссылающиеся на внешние символы. Во время линковки объектных файлов в исполняемый файл линковщик находит все вызванные функции в библиотеках которые ему передали для линковки.

    3)Я так понимаю прототипы в C++ нужны для того чтобы компилилось быстрее?

    Прототипы нужны чтобы компилировалось вообще. Нельзя вызвать функцию о которой неизвестно вообще ничего.

    4)Заголовочные файлы представляют из себя уже откомпиленый код?(объектный)

    Нет, это обыкновенные текстовые файлы с исходным кодом. Содержимое заголовочного файла просто подставляется в то место где написано #include. Открой один для интереса и почитай.

    5)Тот же вопрос что и в 4 только уже про библиотеки

    Да. Статическая библиотека -- это архив объектных файлов. Динамическая библиотека -- это собранные линковщиком вместе объектные файлы.
    Ответ написан
    3 комментария
  • Как это скомпилировать?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как правильно собирать такое

    Проще всего -- установив -dev пакет в своей ОС:
    apt-get install libfcgi-dev
    gcc -o main main.c -lfcgi -pthread

    Если установить -dev не позволяет религия или другие ограничения, нужно указать компилятору откуда брать libfcgi, так же как вы указали откуда брать fcgiapp.h:
    gcc -I /home/user/lessons/tests/include -L/home/user/lessons/tests/lib -o main  main.cpp -ldl -lfcgi -lpthread

    Путь ...tests/lib -- условный, вам надо будет указать каталог в который установлена libfcgi.a либо libfcgi.so
    -lpthread

    Вместо -lpthread правильнее писать -pthread: -lpthread только линкует с libpthread, -pthread в добавок к этому определяет макрос _REENTRANT для исходников которые компилируются с этой опцией.
    Ответ написан
    2 комментария
  • Почему ./configure не видит ffmpeg при настройке fffmpeg-php?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    ffmpeg headers not found

    Установить ffmpeg-dev, или как он в centos называется -- пакет для разработки с использованием ffmpeg.
    Ответ написан
    Комментировать
  • Bash-script на считывание построчно?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    $SERVICE -b "$line"
    Ответ написан
  • Как скопировать сразу три строчки в редакторе VI?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    3yy
    Ответ написан
    Комментировать
  • Как совместить фабрику и закон Деметры?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Заюзал в очередной раз абстрактную фабрику, и неожиданно вспомнил, что метод класса не должен обращаться к объектам, которые вернул какой-либо метод.

    Фабрика возвращает интерфейс объекта, который был специально введён, чтобы предоставить обобщённый доступ к разным типам объектов создаваемых фабрикой. Пользователи фабрики взаимодействуют только с этими интерфейсами, не с самими объектами. Т.о. пользователи фабрики не зависят от модулей реализующих конкретные объекты. Закон Деметры как раз и нужен для того, чтобы уменьшить зацепление между модулями. Следуйте духу закона, а не букве.
    Ответ написан
    Комментировать
  • Где можно найти информацию о программировании 32 бит avr?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    AVR32 вроде сдох. Сам Atmel перешёл на использование ARM для 32-битных приложений.
    Ответ написан
    2 комментария
  • Как обезопасить функцию от прерывания?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    P.S. выделение памяти в прерываниях зло и т.д. ага.

    Дело говоришь. Вообще какая-либо существенная работа в обработчике прерывания -- зло. Избегай этого по возможности.

    Так вот, что бы не проставлять кучу __disable_irq(); __enable_irq();

    А никак иначе. Но обычно есть возможность делать не disable/enable а save+disable/restore, т.е. запрещать прерывания, одновременно возвращая текущее состояние запрета и восстанавливать это состояние.
    Ответ написан
    5 комментариев
  • Ubuntu Как запустить программу?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    chmod +x samp03svr
    ./samp03svr

    и не сиди под рутом.
    Ответ написан
  • Какая операция наиболее времязатратная на CPU?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Что лучше считать, чтобы CPU работал подольше?

    rep nop
    Ответ написан
    Комментировать
  • Почему команда gcc не найдена (хотя gcc установлен)?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    gсс -lgd main.c
    gсс: команда не найдена

    в слове gcc нет русских букв с.
    $ gcc
    gcc: fatal error: no input files
    compilation terminated.

    Вот тут вам удалось написать слово gcc правильно.
    $ gсс main.c
    gсс: команда не найдена

    А здесь опять с русскими с.
    Ответ написан
    Комментировать
  • Регулярное выражение команд ассемблера?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Смотря какого ассемблера. В общем команды обычно выглядят как мнемоника_опкода [операнд1[, операнды]*], но могут быть нюансы. Начиная с того, какие символы допустимы в мнемониках и операндах и заканчивая тем, что группы ассемблерных команд могут объединяться в бандлы.
    Ответ написан
    Комментировать
  • Как решить задачу (комбинаторика)?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Очевидно же, что они должны стоять М-Ж-М-Ж-М-Ж-М-Ж-М-Ж либо Ж-М-Ж-М-Ж-М-Ж-М-Ж-М.
    В каждом из вариантов видна независимая перестановка 5 мужчин и независимая перестановка 5 женщин. Всего получается (5! * 5!) * 2 = 28800
    Ответ написан
    Комментировать
  • Как найти логарифм числа произвольной точности на C (в Linux)?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Ответ написан
    Комментировать