• Массив uint8_t [8] на переменную uint64_t?

    @abcd0x00
    art1636203: ну, пишешь свою функцию, в которой вся сложная логика, там не две строчки получится, но зато она будет надёжно работать. Упаковщик - это значит, что функция должна взят байты и упаковать их в многобайтовое число. То, что ты хочешь сделать, называется "упаковка". Тебе предложили union выше, но оно не учитывает направление хранения байт в многобайовом числе (эндианство), поэтому если, например, сохранишь такое число в файл, а потом этот файл прочитаешь на другом компьютере, там может получиться лажа, потому эндианство у тебя не приводится к единому виду и на разных компьютерах оно может быть не одинаковым, а противоположным. Так что изучи вопрос или же твой код будет новичковым и работать якобы везде, но на самом деле не везде.
  • Почему программа выдает не тот результат, который нужен?

    @abcd0x00
    Алексей Ярков: но если ты одну функцию написать не можешь нормально, то о части программы и речи быть не может, а уж о всей программе - тем более. Так что всё начинается с малого.
  • Почему программа выдает не тот результат, который нужен?

    @abcd0x00
    Алексей Ярков: читай, копируй напрямую стиль, чтобы понять, прочувствовать его, зачем он такой. Потом будешь читать по программированию уже что-нибудь (без привязки к языкам, на псевдокоде). У тебя много таких ошибок алгоритмических, всё это из-за того, что ты взялся за код без теоретической подготовки. Такое можно делать только ради мотивирования себя на дальнейшее обучение (нужна мотивация, так как это нелёгкое дело - 25 часов в сутки надо кодить и стирать, кодить и стирать), но не для создания хороших программ. Для создания хороших программ нужно изучать парадигмы программирования, плюсы и минусы этих парадигм. Тоже немало всё это времени займёт. Но зато потом, когда ты будешь знать уже, программы сами будут получаться и, главное, будут делать что-то, что ты руками уже выполнить физически не сможешь, так как не хватит времени. Но чтобы написать такие программы, нужно уметь писать их части, а потом соединять эти части друг с другом. А потом ты будешь соединять такие программы друг с другом, получая программные пакеты или комплексы, которые уже много всяких сложных действий будут прокручивать. Там уже руками нереально выполнить это всё.
  • Почему программа выдает не тот результат, который нужен?

    @abcd0x00
    Если тебе надо что-то проверить, пиши функцию.
    Если тебе надо что-то ввести, пиши функцию.
    Если тебе надо что-то создать, пиши функцию.

    Пока что у тебя всё навалено в кучу и при любой ошибке ты даже не знаешь, где искать её корни. Просто не читал ты K&R2, и это чувствуется, а потому и не знаешь хорошие практики, используемые при написании кода.
  • Установка программы через документ?

    @abcd0x00
    Можно ещё и специальный документ сформировать, который без всяких макросов просто проэксплуатирует дыру в самой программе. Но для этого надо знать дыры приложения - то есть быть специалистом по информационной безопасности и постоянно в этом ковыряться каждый день, отслеживая работу других специалистов, которые тоже их ищут.

    CityCat4: так что не думай, что если ты макросы отключил, то ты в шоколаде :) Раньше была дыра такая в ворде, где просто в документе набираешь ряд символов и из-за этого он сразу вываливался с ошибкой access violation или что-то в этом роде.
  • Как побороть warnings?

    @abcd0x00
    Ты бы прочитал какую-нибудь нормальную книгу с точно правильным кодом и стандарт языка. Наугад в этом деле делать нечего, ты просто будешь всё время пропираться в чём-нибудь. А так как в нём многие вещи разрешены, то об ошибках ты даже не узнаешь, они просто будут вылазить постепенно в рабочей программе посреди её выполнения. C - это мощный инструмент и он работает точно, но это не значит, что его нельзя абсолютно неправильно применить.
  • Как побороть warnings?

    @abcd0x00
    CityCat4:
    Ну, в общем случае да, но обычно через множество typedef он приходит к int32

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

    В данном случае ты не прав в том, что он четырёхбайтовый. По стандарту сказано, что int не может быть короче short int и не может быть длиннее long int - это всё, что известно про int. Никаких 32 бита там нет и я видел обычный int как на 16 бит, так и на 64 бита, но это тоже не крайние ограничения.
  • Как побороть warnings?

    @abcd0x00
    Он пишет в C99, а в нём return 0 в конце подразумевается по стандарту.
  • Массив uint8_t [8] на переменную uint64_t?

    @abcd0x00
    Rsa97: Эндианство не учитываешь. Где-то оно окажется таким, а где-то другим. Получится, что на одном компе программа будет правильно работать, а на другом - нет.
  • Как правильно поступить с датой?

    @abcd0x00
    Алексей Ярков: всё, теперь засунь это в функцию. Потому что сегодня оно простенько выглядит, а завтра начнёт расти. Чтобы оно код не запутало, оно должно расти в своей личной функции.
  • Как указать рекурсионный вызов функции при обработке условий?

    @abcd0x00
    sim3x: я не понял, что ему надо, поэтому как бы десять кодов ему писать, а потом выяснить, что они все неправильные, как-то не хочется.
    Зайди сюда, там можно подучиться правильной рекурсии.

    Если же исправлять твой код вот этот с созданием среза (будем считать, что мы знаем, что пишем ему). Ну, во-первых, рекурсия в питоне ограничена через лимит
    >>> sys.getrecursionlimit()
    1000
    >>>

    то есть это, считай, в функцию должны подаваться уже только короткие строки или же надо лезть в настройки рекурсии, что обычно не делают. А во-вторых, если и делать рекурсию, то она должна принимать текущий индекс в строке и просто его менять, а он много не жрёт, потому что это просто число одно. Если же полностью переделывать твой код, то это нужно сделать обычный цикл, тогда он не будет память жрать и не будет ограничен короткими строкам (то есть любые можно будет подавать).
  • Как правильно поступить с датой?

    @abcd0x00
    Алексей Ярков: а, ты не можешь функцию декремента даты написать. Ясно. Если можешь, пиши, если не можешь, я могу тебе написать. Могу и подсказать просто, если тебе самому интересно написать. Всё-таки, лучше самому развиваться.
  • Как указать рекурсионный вызов функции при обработке условий?

    @abcd0x00
    sim3x: считай, что он есть в будущем и твой код выполняется на нём. Он и даже не в плане рекурсии затратен. Можно просто представить, что эта строка будет на сотню мегабайт и что? ты будешь на каждом шаге генерить ещё сотню мегабайт. И так у тебя просто программа съест оперативку и система начнёт юзать свап, а это всё очень тормозное.
  • Как правильно поступить с датой?

    @abcd0x00
    Алексей Ярков: пиши всё на функциях, тогда когда что-то надо будет поменять, ты не будешь весь свой код выбрасывать, а будешь переписывать лишь маленькую функцию какую-нибудь. Причём этих функций может быть сотня, но при этом они все будут понятны и легко меняемы и заменяемы.
  • Что не так в коде?

    @abcd0x00
    MiiNiPaa: так это стандарт такой. Главное, чтобы стандарт был точно определён. А это всё, что нужно точно, можно сделать другим способом. А вот %c отлавливает. Да там много нюансов, но всё можно отследить в точности.
  • Как подключить github к реальному проекту?

    @abcd0x00
    Alex Solomaha: короче, смотри, все эти хакеры ищут это всё первым делом, причём не руками, а программами - то есть это всё очень быстро и легко делается. А то мне как-то один заявил "да кто будет иконку вордовского документа вшивать в программу, это же так сложно и долго", он просто реально не знал, что есть программы, в которых всё это делается за секунду, так как он этим не занимался никогда.
  • Как подключить github к реальному проекту?

    @abcd0x00
    Alex Solomaha: потому что там в истории могут быть старые тестовые пароли и другие важные данные, поэтому эти файлы ищут всегда в первую очередь.
  • Нужна помощь по GIT! Your branch is ahead of 'origin/master' by 3 commits. (use "git push" to publish your local commits)?

    @abcd0x00
    Денис Загаевский:
    Хотя co там обозначает checkout, а commit - ci
    progit. alias

    У меня всё на алиасах, это практически свой язык общения с git'ом, удобный и короткий, который ещё и может всё, что угодно делать.
  • Как указать рекурсионный вызов функции при обработке условий?

    @abcd0x00
    Это не хвостовая рекурсия, если что. При хвостовой рекурсии все фреймы вызовов имеют постоянный размер в памяти. Таким образом компилятор может оптимизировать их, переписывая их поверх друг друга. А тут на каждом якобы хвостовом вызове генерится новая строка.