Задать вопрос
Ответы пользователя по тегу C
  • Хайп вокруг ЯП Rust и C?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Хайп вокруг ЯП Rust и C?

    Нет никакого хайпа. Кто писал на С - тот пишет и дальше. Кто хочет модно-стильно-молодежно - пишет на Rust
    ручное управление памятью, которое называют недостатком языка Си?

    Это не баг. Это фича (C)
    Это не недостаток языка. Это его достоинство. (Я сейчас конечно же про чистый С, а не про плюса). Языков с автоуправлением памятью - хоть #опой жуй. "Убивцев" С - тоже не меньше - появляются и исчезают, как пузыри, оставляя после себя неприятный запах...
    и не являются ли ошибки с памятью ошибками программиста,

    ошибки с памятью - это разумеется ошибки программиста. С - низкоуровневый язык, если кто-то не справляется с управлением памятью - пусть использует другие языки, где оно автоматическое.

    Броском кухонного ножа можно спасти жизнь человека. А можно ее забрать. Является ли возможность ножа убить насмерть ошибкой его разработчика? Нет, потому что нож предназначен для тех, кто умеет его применять. Не умеешь - используй столовый.
    разве общее число ошибок не перераспределяется на другие недостатки программы или программиста

    Нет конечно же, это же не тараканы :) их потравили в одной квартире - они "перераспределились" в другие
    Ответ написан
    Комментировать
  • Как исправить данные ошибки при компиляции?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    При линковке программы линкер не обнаружил среди указанных ему библиотек той, которая содержала бы перечисленные в ошибках функции, нужно подключить библиотеку

    (И, если это не преднамеренный стеб - переименовать учетку - как-то смешно выглядят элементарные вопросы от юзера с ником LinuxGod :ROFL: )
    Ответ написан
    Комментировать
  • Как собрать проект на Си в программу которая не требует перекомпиляции (что-то на подобие .exe) на ubuntu?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Собрать бинарник вестимо. Причем (я так понял, хотите продемонстрировать преподу?) - если не уверены, что на том месте есть все либы - собирать его надо статически - это сильно увеличит его размер, но даст возможность запустить на почти любом линухе
    Ответ написан
  • Как установить переменную $? в си программе?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Эту переменную сама система устанавливать будет

    Будет. Если скажешь. $? - это код возврата последней выполненной команды. Код возврата устанавливается вызовом exit()

    man exit в общем.
    Ответ написан
    Комментировать
  • Как вписать через fscanf?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Через fscanf() ничего вписать нельзя - это функция чтения Она ничего никуда не пишет (за исключением данных в переменные)
    Ответ написан
  • Как правильно использовать getopt?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Чувак, в мане блин расписано все и даже целых два примера есть!
    Ответ написан
    Комментировать
  • Как замерить частоты тактов, отводимых на операцию в C?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Вопрос поставлен неверно.

    Первое. Компиляторы нынче жутко умные и могут весьма вольно обращаться с кодом (что весьма бесит, когда делаешь отладку - непременно нужно -O0 ("о ноль"). Поэтому имеет смысл рассматривать только код, откомпилированный с этой опцией, если ее убрать, все будет нафиг по-другому.
    Второе. Смотрим ассемблерный код, сгенерированный компилятором и считаем такты по командам.
    Третье. И выкидываем свои расчеты в мусорку, потому что процы - они тоже умные, у них всякие оптимизации, конвейеры, предикативные блоки и прочее.

    Смысл считать растактовку есть только для слабых процов - берется даташит на конкрентую модель проца - и считается.
    Ответ написан
    Комментировать
  • Почему при вводе текста добавляются лишние символы?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Потому что на входе UTF-8, а не ASCII - два байта на букву, а не один.
    Ответ написан
  • Два раза двойные скобки в if?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Компилятору пофиг сколько там скобок, хоть десять. Но я никогда такого не видел и согласен с Василий Банников - чем говорить про "некоторых" - сразу ссылку на код давайте.
    Ответ написан
    Комментировать
  • Segmentation Fault не доходя до main?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    gdb в зубы и вперед
    Ответ написан
    2 комментария
  • Указатель или Индекс элемента?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Потому что работа с указателями более гибкая, чем использование индексов массива. Указатели - это одна из фишек языка С, если ее не понимать - будет очень сложно на нем писать.
    Ответ написан
    3 комментария
  • Почему вылезает ошибка при компиляции?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    А питоновские либы (собственно и содержащие код функции Py_Initialize()) добавит Пушкин? Ищите, где стоит питон и как называется его основная либа и подключайте ее
    Ответ написан
  • Как вызвать эмулятор терминала (bash) через программу на СИ?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Можно по-топорному - через system(), при этом родительский процесс приостанавливается на время выполнения потомка.
    Можно более-менее правильно - через fork() и exec(), потом словить код возврата через waitpid()
    Ответ написан
    Комментировать
  • Как реализовать выделение памяти (malloc) через функцию?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Чтобы менять значение передаваемого элемента нужно передавать указатель на него - в данному случае передавать указатель на указатель :)
    Ответ написан
    Комментировать
  • Как определить исключение "число не является вещественным"?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Я не слишком люблю потоковый ввод-вывод, поэтому всегда с небольшими файлами работаю по одной схеме - проверил наличие-получил размер-запросил память- прочитал- закрыл.
    А дальше работа по такой схеме:
    Нашел пробел, запомнил место, ляпнул сюда '\0'
    От текущего места до запомненного сделал sscanf() (чтобы не греть голову распознаванием формата вещественного числа, а напрячь этим stdio).
    Если sscanf не вернул ошибки - это вещественное число и счетчик ++, иначе счетчик не трогаем.
    Текущее место перенес на один байт дальше, чем запомненное.
    Вернулся к поиску пробела, если строка не кончилась
    Ответ написан
    Комментировать
  • Как в пpоизвольном тексте вставить между пеpвым и втоpым словом новое слово?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Блин тут что группа студентов окопалась, у которой сейчас тема "работа с текстом"?

    man realloc, чувак
    ну либо считать текст, посчитать, на сколько увеличился, взять памяти для новой версии, скопировать слово, вставить новое слово, вставить хвост.
    ну либо "Фрилансим"
    Ответ написан
    Комментировать
  • Как узнать количество чисел в файле txt?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Взял размер файла (man readdir)
    Запросил памяти под чтение файла по размеру файла (man calloc)
    Открыл файл (man open)
    Прочитал его (man read)
    Закрыл файл (man close)
    Посчитал число пробелов в буфере, проверил, что после последнего идет цифра (исключить ситуацию когда пробел после последнего числа), если это так, прибавил единицу
    Вывел
    Освободил память (man free)

    ПРОФИТ!
    Ответ написан
    Комментировать
  • Как найти сумму элементов массива в С?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    "Фрилансим" немного по другой ссылке.
    Ответ написан
    Комментировать
  • Можно ли (и как это сделать) в языке Си в оператор if прописать массив?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Так делать нельзя. С - язык низкоуровневый. Хотите таких сравнений - Вам в Perl, Python или еще чего.
    - scanf у Вас притащил с собой '\n' :)
    - строка берется через gets(), если ее длина > 2, последний символ забивается '\0'
    - дальше идет if конечно же, но if, сравнивающий код возврата от strncmp() - совпало - наш язык, не совпало - не наш.
    - Обязательно проверить на то, что юзер ввел лабуду!

    Код мне писать неохота, он довольно простой.
    Ответ написан
    Комментировать
  • Какие есть альтернативы getch() в си?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги