Практикуем мышление указателями в C (Си) • Live coding • Refactoring

Вот указатели в C. Они есть. Хорошо, мы потерпим. Или начнём получать удовольствие? Попробуем перейти от мышления «оперируем данными» к мышлению «оперируем указателями». Поначалу это примерно так же больно, как думать объектами. Или — для начинающих — функциями и переменными. Потом, конечно, затягивает. Зачем думать указателями? Например, чтобы перестать думать об утечках памяти. Или о совместимости данных при вызове функции. Или избавиться от практики создания массивов для конкретного типа данных. Да-да, совсем-совсем. Как думать указателями? А вот как раз начнём. Пощупаем что успеем за час — и не в последний раз, конечно. Таймлайн: 00:00 – Приветствие. О чём будет лекция 00:23 – Для кого эта лекция и зачем она нужна 01:16 – Указатели как сложная тема для новичков 02:08 – Первое визуальное представление памяти 02:41 – Историческая справка об указателях 03:56 – Основные применения указателей: память и поведение 06:32 – Поведение как ключ к абстракции 07:14 – Пример с циклом по строке 08:49 – Почему поведение и данные стоит разделять 11:36 – Зачем нужны функции-обработчики (callbacks) 12:14 – Переход к указателям на функции 13:00 – Итерация как абстракция поведения 14:27 – Обёртка над `printf` через callback 16:00 – Абстрагирование цикла 17:41 – Проблема с длиной массива 19:04 – Решения: передача длины, sentinel, структура с длиной 21:04 – Создание структуры `MetaString` 25:04 – Важность хранения указателя, а не самих данных 26:02 – Создание строки и её обёртывание в `MetaString` 28:01 – MagicRun: итерация по строке с callback'ом 30:22 – Определение типа функции (callback type) 32:49 – Тестирование MagicRun 33:56 – Ошибка компиляции из-за статической строки 35:05 – Переход к динамической строке 37:33 – Успешный запуск через `strcpy` 38:16 – Удаление лишнего: использование только итератора 39:06 – Новый callback: обработка символов как чисел 41:08 – Отделение данных от поведения: суть итератора 42:43 – Комментарии к итератору и типизации функций 44:27 – Начало ООП-подхода: указатели на поведение 45:09 – Исторический контекст появления ООП и Си 46:13 – Проблема: передача структуры vs. указателя 47:41 – Передача структуры по указателю для редактирования 50:00 – Переход к работе только с указателями 52:27 – Данные в динамической памяти, без переменных 54:05 – Управление памятью: `free` и автоматизация 56:16 – Новая задача: вынести создание `MetaString` в функцию 59:09 – Реализация `create_meta_string()` 1:01:17 – Итог: как сокрытие `malloc`/`free` облегчает работу 1:02:10 – Указатели как источник новых задач 1:03:00 – Итератор: универсальный подход 1:04:07 – Итоги: типы функций, callback, метаданные 1:05:25 – Указатель-вездеход и уровни указателей 1:06:17 – Возможности указателей: библиотеки, границы кода 1:07:03 – Повседневные задачи, которые хочется упростить 1:08:32 – Где читать: книги и потоковое изучение 1:10:02 – Трудности понимания — это нормально 1:10:56 – Финальные слова: указатели как путь к абстракции Конспект: https://github.com/olgapavlova/lectur...

Как работает и не работает обобщённый указатель void * в C (Си)
▶︎

Как работает и не работает обобщённый указатель void * в C (Си)

Медленно подкрадываемся к JSON со стороны головы • C • Live coding
▶︎

Медленно подкрадываемся к JSON со стороны головы • C • Live coding

Первый модуль ядра на C и инструменты для его разглядывания • Live coding
▶︎

Первый модуль ядра на C и инструменты для его разглядывания • Live coding

Objects and Data Structures. Robert Martin’s "Clean Code" Review #2
▶︎

Objects and Data Structures. Robert Martin’s "Clean Code" Review #2

Кодеки простыми словами: H.264 vs H.265
▶︎

Кодеки простыми словами: H.264 vs H.265

#26. Указатели. Проще простого | Язык C для начинающих
▶︎

#26. Указатели. Проще простого | Язык C для начинающих

Приёмы использования ссылок на функции в C (Си) • Live coding
▶︎

Приёмы использования ссылок на функции в C (Си) • Live coding

Почему мы живем в тревоге? | Андрей Баумейстер о кризисе смыслов и диагнозе времени
▶︎

Почему мы живем в тревоге? | Андрей Баумейстер о кризисе смыслов и диагнозе времени

Шурик в Матрице. Полный фильм
▶︎

Шурик в Матрице. Полный фильм

Структуры данных в C для себя, любимых • Live coding
▶︎

Структуры данных в C для себя, любимых • Live coding

Честно про аддитивные технологии.
▶︎

Честно про аддитивные технологии.

Device Searches 2026: What the FSB Looks for at the Border and How to Hide Your Data
▶︎

Device Searches 2026: What the FSB Looks for at the Border and How to Hide Your Data

СКОТТ РИТТЕР: ядерная война, разрушение Европы, Кадыров, санкции, жена-грузинка, ЦРУ и переговоры
▶︎

СКОТТ РИТТЕР: ядерная война, разрушение Европы, Кадыров, санкции, жена-грузинка, ЦРУ и переговоры

AWK for Text Processing: What’s Worth Remembering and What Can You Forget? • Live coding
▶︎

AWK for Text Processing: What’s Worth Remembering and What Can You Forget? • Live coding

Как связаны шлейф и микроконтроллер — и зачем нам это надо? Возня с железками
▶︎

Как связаны шлейф и микроконтроллер — и зачем нам это надо? Возня с железками

Основы программирования микроконтроллеров. Лекция в МИРЭА
▶︎

Основы программирования микроконтроллеров. Лекция в МИРЭА

7. Working with Memory in C: Pointers, Unions, Bit Fields | Microprocessor Programming
▶︎

7. Working with Memory in C: Pointers, Unions, Bit Fields | Microprocessor Programming

Исторический анекдот или встреча с ферматистом
▶︎

Исторический анекдот или встреча с ферматистом

HYPERFOCUS MODE | Brainwave Focus Music for Deep Work
▶︎

HYPERFOCUS MODE | Brainwave Focus Music for Deep Work

СОБЕСЕДОВАНИЕ НА ВЕДУЩЕГО ПРОГРАММИСТА 1С. УРОВЕНЬ MIDDLE+. ЗАРПЛАТА 250 000
▶︎

СОБЕСЕДОВАНИЕ НА ВЕДУЩЕГО ПРОГРАММИСТА 1С. УРОВЕНЬ MIDDLE+. ЗАРПЛАТА 250 000