Из-за периодической блокировки нашего сайта РКН сервисами, просим воспользоваться резервным адресом:
Загрузить через dTub.ru Загрузить через ClipSaver.ruУ нас вы можете посмотреть бесплатно Как работает и не работает обобщённый указатель void * в C (Си) или скачать в максимальном доступном качестве, которое было загружено на ютуб. Для скачивания выберите вариант из формы ниже:
Роботам не доступно скачивание файлов. Если вы считаете что это ошибочное сообщение - попробуйте зайти на сайт через браузер google chrome или mozilla firefox. Если сообщение не исчезает - напишите о проблеме в обратную связь. Спасибо.
Если кнопки скачивания не
загрузились
НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если возникают проблемы со скачиванием, пожалуйста напишите в поддержку по адресу внизу
страницы.
Спасибо за использование сервиса savevideohd.ru
void * — особый указатель. Он может то, чего не может никто — и не может то, что могут все. Как нам это поможет и при чём тут функциональное программирование? Обсудим и покодим. ВНИМАНИЕ: ошибка в коде функции free_regmem() — и по ходу стрима её не обнаружили. А это важно. Потерян инкремент p. Должно быть p++ в конце блока while. Таймлайн: 00:06 – Введение, продолжение изучения Си 00:26 – Рефлексия о предыдущей теме 00:48 – Поведение отдельно от данных, функциональное программирование 01:41 – Переход к новой теме: обобщённый указатель 02:55 – Что значит «обобщённый» в программировании 04:06 – Универсальные функции и обобщение типов 05:16 – Массивы как пример обобщённой структуры 06:10 – Стандартная библиотека и справка 06:59 – Обработка произвольного числа параметров 07:56 – Указатели и ссылки на функции 08:45 – Хочется универсальности – зачем нужен обобщённый указатель 09:37 – Основная проблема: указатель – это адрес 11:00 – Пояснение: указатель как длинная полка 12:38 – Память и тип — разные вещи 14:45 – Почему указатели опасны и что мы с ними можем 16:21 – Использование указателей для изменения данных вне функции 17:56 – Визуализация указателей 20:13 – Эксперимент: если оторвать тип от указателя 21:29 – Появление void* как универсального указателя 23:38 – Абстрагирование: указатель не знает про содержимое 24:41 – Конфликт: функции требуют типы, а нам нужна универсальность 25:54 – Макросы и generic-функции не подходят для обратных вызовов 27:03 – Функции высшего порядка и обобщённые указатели 29:36 – void* – указатель на что угодно 32:02 – Пример: функция, создающая строку из символа через void* 36:08 – Работа с void* внутри функции 38:25 – Возвращаем результат как обобщённый указатель 40:14 – Демонстрация использования функции с обобщёнными указателями 44:49 – Печать строк из void* 47:00 – Всё работает: универсальность достигнута 47:52 – Переход к более насущной задаче: сборщик мусора 50:16 – Создание регистра выделенной памяти 52:05 – Объявление массива обобщённых указателей 54:05 – Функция для добавления указателя в регистр 56:03 – Проблемы типизации и как их решить 57:32 – Убедимся, что всё работает 1:00:13 – Использование функции exit и вызов очистки памяти 1:02:03 – Реализация функции очистки памяти 1:06:00 – Ошибка: нельзя разыменовывать void*, решение 1:07:04 – Всё работает, память очищается 1:08:26 – Проверка утечек памяти 1:12:22 – Главное: void* позволяет не думать о типах 1:13:14 – Схема работы обобщённой функции 1:14:21 – Подводка к задаче с аргументами в функциях высшего порядка 1:15:55 – Аргументы функции обратного вызова и суммирование 1:17:09 – Промежуточная функция для упаковки аргументов 1:18:25 – Заключение, благодарности и планы Конспект: https://github.com/olgapavlova/lectur...