Ответы пользователя по тегу C
  • Какие 2D/3D игровые движки/библиотеки есть для языка C?

    @mrobespierre
    только здесь 11 штук
    https://en.wikipedia.org/wiki/List_of_game_engines
    вот хороший пример
    https://github.com/orangeduck/Corange

    ну а sdl не движок, а либа

    если у вас правда так хорошо с Си, что можно игры писать, берите C# + Unity, за 2-5 недель втянитесь и начнете фигачить

    и да, почти все современные движки на плюсах, если серьёзно интересуетесь геймдевом, учите их
    Ответ написан
    1 комментарий
  • Каким образом задать динамический массив символов (строку) если не известен изначальный размер вводимой строки?

    @mrobespierre
    если интерес академический, то как предложили коллеги: malloc/calloc
    если надо чтобы работало, берите glib (не путать с glibc)
    если надо чтобы работало, и glib не устраивает (тяжело себе представить такую ситуацию, но допустим), выделяйте больше, например [512], но считывайте в них только первые [500] (тож например), scanf так умеет. проверяйте сколько считалось: если ровно 500 - пользователь точно ввёл много и скорее всего всё не влезло, ругайтесь на него (скажите, что 256 было максимум) и считывайте опять. если же <500, то всё ок, можно работать. надеюсь понятно объяснил: главное - не считать данных больше, чем выделено места (избегнуть переполнения буфера)
    Ответ написан
    Комментировать
  • Какую книгу по Си посоветуете после js и python?

    @mrobespierre
    удваиваю Клеменса ну и Кинг (C Programming A Modern Approach 2nd ed)
    K&R не читайте, он был идеален в своё время (40 лет назад), но с выходом стандарта C99 устарел. в 2017 году писать в стиле K&R тем более нельзя
    Ответ написан
    Комментировать
  • Как сделать красивое приложение на GTK+?

    @mrobespierre
    если можете в C++, смотрите лучше в сторону Qt/QML. если нужно что-то вообще неземное, попробуйте SDL2.
    Ответ написан
    Комментировать
  • Как реализовать считывание строк из файла в массив строк?

    @mrobespierre
    указатели сами по себе не очень сложно понять: грубо говоря - это переменная, значением которой является адрес в памяти, по которому лежит значение другой переменной (обычно анонимной, или безымянной, если угодно). строк в Си нет (но можно подключить например glib и наслаждаться). строкой в "ванильном" Си, без дополнительных библиотек, принято называть массив символов. массив в Си (с небольшими оговорками) - это указатель на первый элемент массива. выше уже написали, что если вы хотите считать строки файла в массив строк, то на самом деле вам нужен массив массивов (т.е. 2-мерный массив) символов. важной особенностью массивов в Си является необходимость указания размера ещё на этапе компиляции, т.е. мы сначала задаем размер массива (в данном случае он будет длиной строки), а потом заполняем его, попутно проверяя, не "переполнили" ли мы выделенное место. коллеги предлагают небольшие размеры массивов (26,7,20), я всегда выделяю 512 (2017 год на дворе), но считываю не более 500. удачи.
    Ответ написан
    Комментировать