• Почему в Си допускается переполнение массива?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Потому что С - низкоуровневый язык. Как уже говорили, a[b] - всего лишь иная форма записи *(a+b), что позволяет делать мнооооожество финтов ушами :) man memmove например почитайте :) - это вообще адЪ :) Существует множество либ, содержащих например те же strcpy, strcat, strstr, но обвешанные различными проверками - кому надо, тот их использует.
    Ответ написан
    1 комментарий
  • Почему в Си допускается переполнение массива?

    Ocelot
    @Ocelot
    Расплата за скорость работы программы. Си - довольно низкоуровневый язык. Повыше ассемблера, но не сильно. С одной стороны, быстрый и лёгкий код, за счет отсутствия кучи проверок. С другой - куча возможностей отстрелить себе ноги по самый копчик. Не следил за границами массивов - сам виноват.
    Ответ написан
    Комментировать
  • Почему в Си допускается переполнение массива?

    @MiiNiPaa
    В С операция индексирования это синтаксический сахар над операциями с указателями: по стандарту а[b] полностью эквивалентно *(a+b). Это, кстати, позволяет весёлые штуки вроде 4[a]. Поэтому операция индексирования не может иметь иного поведения нежели операции над указателями.

    Ещё С не занимается управлением памятью, отдавая это на откуп программиста. Поэтому, в общем случае, проверить принадлежит какая-либо область памяти массиву невозможно - этим занимается программист (если ему это нужно)

    Также С исповедует принцип "не плати за то, что не нужно". Большинству людей не нужна проверка границ массивов. Те кому нужна, могут сделать её самостоятельно.
    Ответ написан
    5 комментариев
  • Почему в Си допускается переполнение массива?

    TrueBers
    @TrueBers
    Гуглю за еду
    Потому что это проверка на переполнение даёт лишние накладные расходы при выполнении. Изначально язык разрабатывался с расчётом на эффективность, с девизом что-то типа: «не нужно платить за то, чем не пользуешься».

    По сути, Си — это просто высокоуровневый ассемблер. В ассемблере нет понятия ошибок вообще, всё на плечах разработчика. Если ему нужно проверять на переполнение, он сам должен реализовать этот функционал, а не терять на этом производительность, когда ему это не нужно.
    Ответ написан
    Комментировать
  • Каким способом лучше разобраться в работе сайта?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer
    Совершенно не нужно покупать сервер, тем более VPS.

    Для "разобраться", вам можно

    1) бесплатно поставить на свою машину веб пакет. Для NodeJS, почитайте - https://habrahabr.ru/post/132745/, там вкратце установка прямо на винду

    2) бесплатно поставить себе virtualbox, на котором создать виртуальную машину и поставить на нее любой линукс, на который поставить nodejs

    Как разберетесь что и зачем - можно будет подумать о покупке отдельной VPS, но для поиграться - локальная машина лучше, проще, доступнее.
    Ответ написан
    2 комментария
  • Должен ли владелец сайта следить за соблюдением авторских прав?

    @Z-r
    Вы не упомянули юрисдикцию. Что ж, будем руководствоваться старым правилом: если на марках не написана страна, значит эта страна Великобритания; если в Интернете не написано о каком праве речь, значит это право Соединенных Штатов.

    IANAL, TINLA.

    > 1. Обязан ли владелец сайта самолично выяснять, кто есть автор и нарушен ли закон?

    Нет, конечно.

    > 2. Несет ли какую либо ответственность владелец сайта за то, что без его ведома, против всех правил, некто опубликовал чужое?

    Если он выполняет предписания закона, то нет.

    > 3. Как решение таких ситуаций должно происходить по закону, кто и какие действия должен предпринять, какова роль владельца сайта?

    Владелец сайта или сервера (далее — вы), где пользователи что-то размещают, должен обнародовать адреса, по каким он обязуется принимать и рассматривать жалобы на нарушения авторского права.

    Получив официальную жалобу от правообладателя или его представителя (далее — копираста) с требованием удалить принадлежащее ему произведение из публичного доступа, вы *обязаны* его удалить, о чем и уведомить пользователя, что разместил на вашем сайте (сервере) спорное произведение,

    Если пользователь подает вам официальное возражение, вы его вместе с его полными контактными данными (какие он должен не забыть указать) переправляете копирасту. Дальнейшие действия копираста лежат уже в области судебного разбирательства.

    Если в течение четырнадцати рабочих дней копираст не уведомил вас, что он намерен их начать, вы можете восстановить произведение в публичном доступе.
    Ответ написан
    2 комментария
  • Почему многие программисты не любят javascript?

    1) Стандарты были написаны в крайне короткие сроки
    2) Много слабых сторон (вытекает из пункта 1)
    3) Не похож на какой либо другой язык программирования
    4) Позволяет решать задачи, даже не имея представления о самом языке и программировании
    5) Нет строгой типизации

    За последние 2 пункта его некоторые любят, а кто-то тихо ненавидит.
    Ответ написан
    1 комментарий
  • Нововведения на Тостере?

    pragmatik
    @pragmatik Куратор тега Тостер
    Мы планируем продолжать работу по улучшению сервиса и, по мере возможностей, внедрять пожелания пользователей. При этом, очень важно понимать, что:
    1. Это работа над многопользовательским проектом и, за время его существования, мы зафиксировали довольно внушительное количество пожеланий пользователей. Мы не можем просто взять и пообещать реализовать их все, хотя бы потому, что отдельные из них противоречат друг другу.
    2. Мы разделяем стремление облегчить жизнь пользователям наших проектов. Но мы не можем обязать всех пользователей установить расширение от стороннего разработчика, не являющегося сотрудником нашей компании, который в любой момент может забросить это расширение или внедрить в него стороннюю рекламу. Поэтому, выбирая какое пожелание пользователей реализовать, мы не можем рассуждать в духе: «это уже кто-то реализовал, кому надо - скачают его расширение, поэтому не будем реализовывать».
    3. Мы обеспечиваем поддержку нескольких проектов https://tmtm.ru/#projects и наша команда разработчиков ведет ранжирование задач, исходя из степени их критичности. Очевидно, что согласование их выполнения со сторонним разработчиком расширения для одного из проектов (который не знаком с корпоративной спецификой и которому мы, по вполне очевидным причинам, не можем дать доступ к нашей системе отслеживания задач) просто напросто не представляется рациональным.
    Ответ написан
    Комментировать
  • Как вывести результат работы функций WinAPI?

    @Mercury13
    Программист на «си с крестами» и не только
    Ваши ошибки.

    1. Это разные дескрипторы.
    FindFirstFile даёт дескриптор поиска файлов.
    А ReadFile требует дескриптор файла, который можно получить через CreateFile.

    2. Второй параметр FindFirstFile не может быть NULL. Это указатель на WIN32_FILE_DATA, в которую функция и будет кидать информацию о найденных файлах.

    3. Если вы не ищете по маске и точно хотите открыть файл, на что вам FindFirstFile? Орудуйте сразу CreateFile.

    4. Вы подключили пару излишних хедеров.

    5. Не советую вместо нулевого указателя NULL писать 0.

    6. В ReadFile два последних параметра не могут одновременно быть NULL: первый — для синхронного чтения, второй — для асинхронного.

    В общем, «курите маны». Благо, у M$ они хорошие.
    Ответ написан
    9 комментариев
  • "Раздать" микрофон и колонки по сети?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Есть Logitech BT адаптер. Вход - Bluetooth-сигнал с ноута, смарта; Выход - через аудио-разъём на колонки.
    bluebox2-gallery.png
    2. Клиент-серверный продукт для VoIP-чата для геймеров: https://wiki.mumble.info/wiki/Main_Page
    Ответ написан
    2 комментария
  • Конденсатор перед или после DC-DC mini360, как защита от просадки?

    longclaps
    @longclaps
    По паспорту коэффициент подавления входных пульсаций у этой штуки == 400, так что, видимо, стартер просаживает бортовую сеть ниже 5вольт. Это странно. Попробуй запитать преобразователь через через диод и повесить на вход кондёр 1000..4700μ
    Ответ написан
    Комментировать
  • Как оказать первую помощь смартфону-утопленнику?

    15432
    @15432
    Системный программист ^_^
    1) сразу же вытащить аккумулятор и не вставлять до окончания ремонта
    2) по возможности разобрать
    3) просушить теплым воздухом (феном), но не 200+ градусов, чтоб пластик не повело
    4) отнести в мастерскую

    Я бы разобрал полностью, высушил чтоб воды не осталось нигде и попробовал включить. Не пашет - менять детали. Или смартфон. Новый note 4 стоит $150
    Ответ написан
    Комментировать
  • Какой программой заснять действия пользователя, которые показывают баг в программе?

    @WayMax
    gif хорошего качества (на которых видно ваши действия, а не размытые пятна) весят намного больше чем видео сжатое кодеком H264.
    Ответ написан
    Комментировать
  • Программирование на C# в Linux?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Будут ли работать и работать корректно IDE (полноценные версии) Visual Studio
    Visual Studio - очень вряд ли, а вот C#-программы созданные в Visual Studio под линуксом запустить можно, с помощью Mono. Года примерно 2-3 назад я так и пытался делать, откровенно говоря, работа с программой собранной в VisualStudio (под виндой) и запущенной под Mono'й в линуксе, чем-то напоминало тестирование альфа-версии windows. Но сам факт, того, что оно запускалось и работало - на лицо. Не знаю, может быть сейчас что-то изменилось к лучшему.

    Вместо VisualStudio, разработчики Mono предлагают Вам использовать MonoDevelop. На мой взгляд, сравнивать их не очень разумно, но последний тоже имеет полное право на жизнь.

    Но вот вопрос, как обстоят дела с программированием на выше перечисленных языках в этой ОС?
    Со всеми остальными языками, кроме C# - дела обстоят на мой взгляд, отлично. Хотя, говоря про C# - я имею в виду полноценную .NET-платформу, с винФормами, WPF и всей прочей дребеденью, к которой Вы возможно уже привыкли работая в VisualStudio/Windows.

    PyCharm, SmartGit и другие проги
    PyCharm - думаю да, это же от JetBrains штуковина? Все известные мне IDE их производства одинаково хорошо работаю и в Linux и в не Linux :))

    Других "прог" там тоже хватает, думаю, касательно программ для работы с Git'ом - у Вас проблем не возникнет.

    Какие особенности, чего ждать, к чему готовиться, стоит ли вообще.
    Особенности - это кардинально другая ОС, со всеми вытекающими. Другие оболочки рабочего стола, другой внешний вид, другие... "другие" примерно всё, что Вы можете придумать. От принципов разработки ОС до всего остального. Хотя нет, некоторые сходства есть в целом. В линуксе так же есть рабочий стол, нечто напоминающее по смысл кнопку "Пуск", курсор мыши и некоторые другие случайные совпадения с другими ОС.

    Стоит ли? - ответ на этот вопрос каждый выбирает для себя сам, лично. Я для себя давно решил, что стоит, чему и рад вполне. Долго сопротивлялся и упрямился линуксу "на рабочем столе", хотя и был довольно большой опыт работы с оным и с FreeBSD ещё с лохматых времен, кода актуальными были FreeBSD-4 и Debian-3. Сейчас Windows стоит на "запасном" диске, т.к. меня там всё ещё держат несколько программ, в т.ч. для обработки звука и фотошопы последних версий. Если бы не это - давно бы сидел в никсах и жил бы спокойно и счастливо.
    Ответ написан
    2 комментария
  • Как реализовать таймер и интервал в Python3?

    @kgbplus
    https://docs.python.org/3/library/threading.html#t...

    def hello():
        print("hello, world")
    
    t = Timer(30.0, hello)
    t.start()  # after 30 seconds, "hello, world" will be printed
    Ответ написан
    Комментировать
  • Список популярных языков по уровню порога вхождения?

    Therapyx
    @Therapyx
    Data Science
    Самый легкий язык это англ+гугл, ну и вот, что он выдал посложнее)
    https://www.quora.com/What-is-a-list-of-programmin...
    а вот еще
    https://www.reddit.com/r/learnprogramming/comments...
    Конкретного мнения как "утверждения" нет и не будет. Кому-то 1 определенный язык может даваться труднее, чем другой и наоборот для другого человека. Это как споры, с какого языка начинать? Если бы я вернул время назад, то начал бы сразу с плюсов.
    Ответ написан
    2 комментария
  • Что делать если команда говнокодит?

    @immaculate
    Программист-путешественник
    Это сложный вопрос, на который нет однозначного ответа. Лично я для себя нашел следующие выходы: не связываться вообще с языками, в которых очень низкий порог входа (Javascript, PHP). Пытаться спорить и воспитывать коллег (это тяжело и дает плоды только на очень длинной дистанции). Менять работу.

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

    Единственное исключение: один раз видел код одной довольно популярной соц. сети. Он был реально ужасен, но эта сеть до сих пор существует и довольно популярна, хотя и вытесняется потихоньку общепризнанными лидерами типа facebook. Как у них все не рушится, не понимаю, но код был такой, что просто волосы дыбом встали, когда увидел. Впрочем, это исключение, которое подтверждает правило.
    Ответ написан
  • Сайту для рынка Европы нужен европейский хост либо же наши пойдут?

    zooks
    @zooks
    Frontend
    В Хорватии, конечно, не стоит. Выберите любой из популярных европейских VDS-хостеров: Нидерланды, Франция, Германия.
    Ответ написан
    Комментировать