Авторы анализатора PVS-Studio предлагают вам проверить свою внимательность и развлечься. Попробуйте быстро отыскать баг в фрагменте исходного кода и ткнуть в него мышкой.
Рубрика «Си» - 4
Игра: найди ошибку в C++ коде
2022-06-29 в 8:00, admin, рубрики: C, c++, code review, quiz, баги, Блог компании PVS-Studio, игра, КодоБред, найди ошибку, никто не читает теги, ошибки в коде, Программирование, Си, тестирование16-битная ОС на fasm + Cи. Часть 1
2022-06-01 в 2:42, admin, рубрики: C, ассемблер, загрузка ос, загрузчик, операционная система, Си, системное программированиеДанная статья в большей степени является не руководством и не мануалом, а просто моими заметками. Идея этой статьи собрать множество особенностей и знаний в одно целое, надеюсь, она кому-то пригодится =)
Что происходит с ОЗУ при загрузке компьютера
Когда вы нажимаете кнопку старта на компьютере(или замыкаете контакты на материнке) BIOS проверяет оборудование и загружает первый сектор жесткого диска(512 байт), который помечен как загрузочный, по адресу 7C00h (h - hex) и начинает выполнять программу которая лежит в этих 512 байтах. От сюда следует, что у нас в распоряжеии есть только 512 байт.
Как пропатчить ОС 1996 года с помощью Ghidra
2022-05-10 в 22:11, admin, рубрики: 1996, C, kurzweil, skillfactory, бинарники, Блог компании SkillFactory, декомпиляция, звук, реверс-инжиниринг, ретро, Си, синтезаторы, старое железо, форматыНе так давно автор материала работал над сложной головоломкой: как пропатчить операционную систему сэмплового синтезатора 1996 года Kurzweil K2500. О путешествии автора в старый код музыкального инструмента рассказываем к старту курса по разработке на C++.

Основы работы отечественных МК 1986ВЕ1Т с болгарскими отладчиками OLIMEX ARM-USB-OCD-H. Часть 2 — RAM & Interruptions
2022-03-26 в 12:55, admin, рубрики: 1986BE1T, C, Olimex, миландр, оперативная память, отладка, программирование микроконтроллеров, Процессоры, СиПреамбула
Изначально вторая главазадумывалась только, как шпаргалка по работе из оперативной памяти, но делать и разбираться в этом не очень трудно. Основная "запара" может настигнуть несведущего именно при работе с прерываниями. Собсна, решено объединить.
Стек:
-
Отладочная плата LDM-HELPER-K1986BE1QI-FULL;
-
МК K1986BE1QI(но все паки и тд. юзаю 1986ВЕ1Т ибо
те же яйца, только с бокудаже даташит 1 на целую линейку); -
Программатор ARM-USB-OCD-H;
-
IDE Keil uVison 5;
-
Open OCD.
Умный malloc для С
2022-03-08 в 18:27, admin, рубрики: C, new, выделение памяти, Программирование, реализация, Си, системное программированиеНа днях я экспериментировал с языком С, и придумал одну интересную концепцию для удобства выделения памяти ( точнее перенял идею С++ но реализовал её средствами языка С ). Я про операторы new и delete, которые захотел повторить. В этой статье я расскажу о новом malloc, как я к этому пришёл, зачем это нужно, и как оно работает.
Зачем?
В С ( по моему личному мнению ) немного неудобно организована работа с памятью - где-то идёт работа с байтами, а где-то с ячейками. Простой пример:
*u++ = 1;
Коллекционирую вредные советы для С++ программистов
2022-01-03 в 20:07, admin, рубрики: C, c++, Блог компании PVS-Studio, вредные советы, КодоБред, ненормальное программирование, ошибки в коде, Си
Я пишу статьи, посвященные написанию качественного кода и про поиск ошибок с помощью инструментов статического анализа. Однообразие наскучивает, хочется пошалить. А давайте все вместе напишем статью "100 вредных советов для С++ программиста". Я начну, а вы подхватите.
Си должен умереть
2021-11-29 в 11:17, admin, рубрики: C, информационная безопасность, Компиляторы, неопределённое поведение, Программирование, Си, системное программированиеЯзык Си - один из наиболее влиятельных языков программирования за всю историю. Он стал незаменимым инструментом разработки операционных систем, сместив с этого пьедестала языки ассемблера. Изучение Си обязательно для любого уважающего себя программиста. Этот язык любим за свою внешнюю простоту и ненавидим за беспощадность к ошибкам. Благодаря нему у нас есть ядро Linux и тысячи уязвимостей в нём же в придачу. Попробуем понять, что же такое этот противоречивый язык Си - благословение или проклятие?
FizzBuzz по-сениорски
2021-01-31 в 11:26, admin, рубрики: C, fizzbuzz, высокая производительность, интервью, ненормальное программирование, оптимизация, Си, собеседование
- Добрый день, я на интервью на позицию старшего разработчика.
- Здравствуйте, давайте начнем с небольшого теста, пока я ваше CV смотрю. Напишите программу, которая выводила бы числа от 1 до, скажем, миллиарда, притом если число кратно трем, то вместо числа выводится Fizz, если кратно пяти, то Buzz, а если и трем, и пяти, то FizzBuzz.
Серьезно, FizzBuzz? Задачка для начальной школы, на сениорскую позицию? Ну ладно.
Я достаю свой верный лаптоп, и пишу такой Читать полностью »
Продолжение: обидно за мнения про статические анализаторы кода
2020-10-16 в 7:36, admin, рубрики: C, c++, pvs-studio, volatile, Блог компании PVS-Studio, опечатки, ошибки в коде, С++, Си, Совершенный код, статический анализ кода, статический анализатор кода
Планировалось, что, написав статью "Обидно за мнения про статические анализаторы кода", мы выговоримся и спокойно отпустим тему. Но неожиданно эта статья вызвала бурный отклик. К сожалению, обсуждение пошло не туда, и сейчас мы сделаем вторую попытку объяснить своё видение ситуации.
Читать полностью »