Задать вопрос
Ответы пользователя по тегу C
  • Возможно ли создать независимый процесс по закрытию основной программы?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Форкнуться, родителя завершить, в потомке загрузить что надо через exec().

    man fork
    man exec
    Ответ написан
    3 комментария
  • Как решить такую проблему?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    "иногда" - категория качественная. А в вопросе должна быть - количественная. Например - сто раз вызвал fread(), 90 раз получил текст "жопа" и десять раз - "попа"...
    Ответ написан
  • Для чего нужны спецификаторы в C?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Описывает формат поля вывода, то есть в каком виде printf() должен напечатать аргумент. Спецификаторы могут быть довольно развесистыми - тут и выравнивание по границе (левая-правая), и символы заполнители и точность вывода...

    man printf(), все тут не перечислишь. Да и не так уж часто они и используются, но тем не менее знать про их наличие надо.
    Ответ написан
    Комментировать
  • Реализация memcmp без библиотек?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Берете исходник из libc, тащите себе в проект.
    Ответ написан
    Комментировать
  • Как улучшить код сравнения строк?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Ну посмотри уже исходник strcmp. Потому что у тебя если первая строка например "I love toster and spent here many hours" а вторая "I love toster" - то ты выхватываешь SIGSEGV, потому что первая строка еще идет, а вторая - уже кончилась (а для проверки условия завершения цикла нужно вычислить оба условия)
    Ответ написан
    2 комментария
  • Почему Массив символов не ровняется обычной строке?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Потому что так делать нельзя :)

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

    Вы сравниваете два указателя, то есть две переменные, содержащие адреса в куче. Разумеется, они будут разные.

    Для сравнения строк есть strcmp(), strncmp(), strcasecmp(), memcmp() и прочие подобные
    Ответ написан
  • Как реализован консольный ввод/вывод в C/C++?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Берется исходник libc, ищется реализация функции. Скорее всего будет несколько вложений функций друг в друга.
    Ответ написан
    Комментировать
  • Как скомпилировать .so файл в .c?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Я нашол .so файл и мне нужно скомпилировать в .c

    Чаво сделать-та? Эт типа "я нашел полкило фарша и мне надо получить обратно мясо, из которого он сделан"? Операция, обратная компиляции (а компиляция, чувак - это получение из исходного кода исполняемого модуля) - называется - внезапно - декомпиляцией. И она для .c файлов возможна в очень примитивной форме только в том случае, если в модуле "забыли" отладочную информацию. Во всех других случаях она попросту невозможна :D
    Ответ написан
    Комментировать
  • В чем причина этих ошибок и как это исправить?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Первое сообщение - переопределение обьекта file. Второе - предыдущее определение было здесь.
    Обычно такие вопросы кодом иллюстрируют.
    Ответ написан
    3 комментария
  • Где взять декомпилятор для Си?

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

    Только в тех редких случаях, когда в программе почему-то сохранилась отладочная информация, можно составить приблизительное представление о коде. Если же там было простяцкоеgcc test.c -o test (или даже gcc -O2 test.c -o test) - усе, только дизассемблер.
    Ответ написан
    Комментировать
  • С чего начять новичку в СИ?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    С русского языка :) НачЯть писЯть правилно, да?
    Ответ написан
    9 комментариев
  • На чём создавать программы под Windows и прочие?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Если в программе предполагается гуй, то лучше всего будет использовать C++ - в C придется делать очень много черновой работы
    Ответ написан
  • Python vs C. Какой из них быстрее?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Или это миф, что C быстрее, чем Python?

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

    Жигули, КАМАЗ и Бентли - это все автомобили. Но они сделаны для разных вещей, и будут хороши в той вещи, для чего были сделаны и плохи в тех вещах, для чего их не предназначали
    Ответ написан
  • Ошибка с условными операторами c, как решить?

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

    1. В С нет строкового сравнения, оператор if (petyasa == "petya") некорректен.
    2. scanf ("%d", &petyasya);
    введет код первого символа строки ('p' или 'v' в данном случае)

    Хотя конечно код можно сделать рабочим даже не сильно его поменяв - ведь вводится-то 'p' или 'v' :)

    #include <stdio.h>
    
    int main () {
       int petyasya;
    
       printf ("petya or vasya");
       scanf ("%d", &petyasya);
    
       if (petyasya == 'p'){
          printf("vasya luche!");
       }else if (petyasya == 'v');
         printf("llooll");
    
       return 0;
    }
    Ответ написан
  • Где взять math.h?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Вообще-то стандартная запись
    #include <math.h>
    Означает она инструкцию искать math.h в стандартных папках инклудов. А запись в кавычках означает "возьми из текущего каталога"
    Ответ написан
    Комментировать
  • Как сделать массив с указателями?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Обьем массива известен.
    Берем память

    float *fptr;
    fptr = (float *) calloc(sizeof(float*), MAX);

    И все :) Массив указателей на float есть :) Теперь перемещаемся по нему, заполняем (разумеется и под числа тоже место нужно), когда надо - перемещаемся и ищем. Обычная работа с массивом, только для счетчика нужно float* использовать - тогда при простом инкременте у тебя он будет автоматом прыгать на следующий элемент массива.
    Ответ написан
  • Что за функция swow?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Где стырил код - там же и ищи. Это может быть все, что угодно.
    Ответ написан
    Комментировать
  • Какой тип данных используется для чисел с фиксированной запятой на C?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    В С нет такого типа. Двоично-десятичный тип данных (он же "тип данных с фиксированной точкой") существовал в PL/1 (и, надо сказать поел мне немало мозгов при отладке программ вследствие своей крайней особливости при хранении в памяти).
    Ответ написан
    Комментировать
  • Почему не пишут сайты на языке Си?

    CityCat4
    @CityCat4 Куратор тега C
    Дома с переломом ноги
    Потому что очень сложно и очень долго.
    Ответ написан
    Комментировать
  • Хайп вокруг ЯП Rust и C?

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

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

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

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

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

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