Заметка рассчитана на начинающих C++ программистов, которым стало интересно, почему везде твердят, что нужно использовать delete[] для массивов, но вместо внятного объяснения – просто прикрываются магическим "undefined behavior". Немного кода, несколько картинок и взгляд под капот компиляторов – всех заинтересованных прошу под кат.
Рубрика «c++» - 17
Почему в С++ массивы нужно удалять через delete[]
2022-07-27 в 12:18, admin, рубрики: array, c++, Cpp, delete, pvs, pvs-studio, static code analysis, Блог компании PVS-Studio, ПрограммированиеКак написать свою кроссплатформенную библиотеку для хуков и не отстрелить себе ноги
2022-07-24 в 10:42, admin, рубрики: c++, ассемблер, ненормальное программирование, низкоуровневое программирование, реверс-инжиниринг, хукиВ текущих реалиях, для перехвата нативных функций существует большое множество библиотек. Но что делать если ни одна из них тебе не нравится?
Конечно же написать свою!
В этой статье я расскажу что лежит внутри библиотек для перехвата x86 кода и почему оно так работает. А также - как искал баги неделями, и что из этого вообще получилось
Сразу же немного обозначу терминологию, используемую в тексте:
Хук — перехват функции, когда перед вызовом какого-то кода выполняется наш коллбэк.
Трамплин — оригинальный код, который нужно вызвать для передачи управлению обратно в перехваченную функцию
NOP опкод - Читать полностью »
Языка С-C++ не существует
2022-07-13 в 16:36, admin, рубрики: C, c++, декларативное программирование, императивное программирование, найм разработчиков, Программирование, С++Каждый день, везде, в том числе в технических статьях, появляется мифический С/С++, честно говоря я просто устал это видеть и хочу в этой короткой статье донести простейшую мысль - С и С++ это два совершенно разных языка с разными требованиями и подходами к разработке.
-
Языки несовместимы и уже давно. Они развиваются параллельно(хотя про развитие стандарта С не знает ничего даже гугл, но он есть, добавили дженерики и хотят лямбды...)
C++. Убираем приватные поля из описания класса или немного дурачества
2022-07-09 в 15:30, admin, рубрики: c++, firewall, pimpl, КодоБред, ненормальное программирование, ПрограммированиеКомпьютеры быстры, но вы этого не знаете
2022-07-08 в 10:21, admin, рубрики: c++, highload, Блог компании Sportmaster Lab, высокая производительность, Программирование
Люди чертовски плохо разбираются в величинах, особенно в тех, которые не могут воспринимать биологически. Например, мы интуитивно понимаем, насколько тяжелее предмет массой 10 кг предмета массой 1 кг.
Ощущение величин можно улучшить, преобразовав их каким-нибудь образом в сигналы, знакомые мозгу.
Смотрели ли вы эти видео?
Второе нравится мне больше всего. Ежедневно я съедаю по чашке риса, так что измеряю состояние Джеффа не только наглядно, но и своим желудком.
Совсем недавно я внёс несколько оптимизаций в код, что помогло мне интуитивно понять, насколько быстро может работать компьютер. И я решил, что этим нужно поделиться.
Читать полностью »
Игра: найди ошибку в C++ коде
2022-06-29 в 8:00, admin, рубрики: C, c++, code review, quiz, баги, Блог компании PVS-Studio, игра, КодоБред, найди ошибку, никто не читает теги, ошибки в коде, Программирование, Си, тестирование
Авторы анализатора PVS-Studio предлагают вам проверить свою внимательность и развлечься. Попробуйте быстро отыскать баг в фрагменте исходного кода и ткнуть в него мышкой.
Holy C++
2022-06-19 в 17:10, admin, рубрики: c++, C++20, ненормальное программирование, Совершенный кодВ этой статье постараюсь затронуть все вещи, которые можно без зазрения совести выкинуть из С++ не потеряв ничего(кроме боли), уменьшить стандарт, нагрузку на создателей компиляторов, студентов изучающих язык и мемосоздавательный потенциал громадности С++
В первую очередь хочется убрать из языка то, что приводит к частым ошибкам и мешает развитию языка, тут идеальным кандидатом можно назвать
1 - union - сумм тип из 70х, в С идея хранения одного типа из нескольких в одном участке памяти выглядит неплохо и сейчас, ведь там все типы это набор байт с заданным размером.
Математическое решение задачи о матрице «змейкой»
2022-06-18 в 21:14, admin, рубрики: c++, Алгоритмы, Занимательные задачки, Лайфхаки для гиков, математика, математика для программистов, Программирование, условия, циклыНастоящая статья продолжает тему предыдущей работы (https://habr.com/ru/post/560266/Читать полностью »
SObjectizer: что это, для чего это и почему это выглядит именно так? Взгляд из 2022-го
2022-06-15 в 8:34, admin, рубрики: actor model, c++, c++17, concurrency, multithreading, open source, sobjectizer, ПрограммированиеШесть лет назад, в июне 2016-го года, вышла первая статья об инструменте, с разработкой которого я связан уже много лет. Шестилетней давности публикация дала толчок интереса к SObjectizer-у и, как я понимаю, кто-то сумел попробовать этот инструмент в деле (или собрался попробовать) именно благодаря той статье. Поскольку за прошедшее время SObjectizer несколько изменился, то я подумал, что не помешало бы выпустить обновленную версию статьи. Исправленную и дополненную. С учетом не только того, что изменилось/появилось/исчезло, но и отталкиваясь от критических отзывов на предыдущие обзорные статьи.
Во что вам обойдется конкурентная обработка. Иерархия проблем
2022-06-13 в 4:48, admin, рубрики: c++, cpu, Алгоритмы, блокировки, высокая производительность, исследование, многопоточность, Параллелизм, параллельное программирование, системное программированиеКонкурентность сложно как следует наладить, как минимум, тем из нас, кому не повезло писать на языках, непосредственно открывающих нутро конкурентного аппаратного обеспечения: речь о потоках и разделяемой памяти. Не менее сложно организовать конкурентность так, чтобы она работала и правильно, и быстро. Все, что вы знаете об оптимизации однопоточного кода, зачастую вам не поможет. На микроуровне (отдельные инструкции) просто невозможно применить обычные правила, актуальные для μ-операций, цепочек зависимостей, пределов пропускной способности и т.д. При конкурентности правила другие.