Вомбатная суббота

Сохраняй посты, комментируй и ставь оценки
Здравствуйте, дорогие вомбатяне! Наступил вомбатный день, пора показывать милых зверьков :)
Всем замечательной субботы, хорошего настроения и всего самого доброго :)
День молодёжи — национальный праздник молодых людей, эта дата отмечается в Российской Федерации ежегодно, летом, в последнюю субботу июня.
История этого праздника началась 7 февраля 1958 года в Советском Союзе, когда Указом Президиума Верховного Совета СССР «Об установлении Дня советской молодёжи» был учреждён «День советской молодёжи», который отмечался в последнее воскресенье июня. (с) спёрто с вики
Желаю всем квадратокакающим сегодня не смотреть на цифирьки в паспорте или свидетельстве о рождении, не вспоминать о пенсионном удостоверении, а быть вечно молодым в душе и чувствовать себя 20ти летними безбашенными парнями и девчёнками
Суббота. Пусть вомбаты сегодня позажигают от души.

Хотел написать про работу системы управления памятью, но понял, что для полноценной статьи у меня не хватает практических знаний. Поэтому кратко

Помимо стека, о котором было рассказано в прошлой статье и который содержит локальные переменные, в "потребительской" программе в среднестатистической ОС еще бывают глобальные переменные и динамическая память. Глобальные переменные описываются внутри сегментов .bss и .data, резервируясь в памяти сразу после загрузки образа программы (по-правильному это называется процессом).
Динамическая память иначе называется кучей, так как представляет из себя кучу динамических данных, который могут появляться и исчезать во время работы.
Для работы с динамической памятью в C существует malloc(size_t), запрашивающий (выделяющий, аллоцирующий) у ОС кусок памяти указанного размера и возвращающий указатель на первый байт, и free(void *), принимающий этот указатель и возвращающий (освобождающий) кусок назад в ОС.
В C++ есть операторы new и delete, они устроены гораздо сложнее и я не буду их рассматривать, ибо не пишу на нем. Помимо запроса памяти у ОС они занимаются ее инициализацией.
Если по какой-то причине стандартной библиотеки языка в наличии не имеется, то в Windows за память отвечает HeapAlloc и устаревшие GlobalAlloc и LocalAlloc из времен Windows 3.11 (malloc к ним и обращается внутри. Еще есть парные HeapFree, GlobalFree и LocalFree). Они предоставляют больше контроля над результатом, но проприетарны для Windows. А полный список функций для работы с памятью в WinAPI есть здесь, их сотни на любой случай жизни. Можно даже внутри контекста чужого процесса выделить или освободить кусок памяти (обычно такое используется вирусами и прочей нечистью).
А что будет, если постоянно выделять, но не освобождать? А еще лучше: выделять, но терять адреса выделенной памяти. ОС достаточно быстро подскажет правильный ответ.
В теории есть несколько возможных выходов, можно даже обработать подобный случай и, к примеру, экстренно освободить всё выделенное (только если не терять указатели) или попытаться спасти нужные данные из разваливающейся программы, но если никаких действий не предпринять, то ОС заставит процесс экстренно прекратить свою деятельность и существование.
Случай с потерей указателей на выделенную память называется утечкой памяти и ее последствия необратимы. Но как только ОС завершает выполнение процесса, то вся его память, даже утекшая, становится снова свободной.

Отслеживание правильности выделения и освобождения памяти является достаточно сложной и опасной задачей, особенно если требуется обеспечивать стабильность и безопасность (лучше даже не думать, что будет, если рукожопый программист забьет на MISRA и устроит утечку памяти в подсистеме тормозов в Тесле), и практически невыполнимой в некоторых парадигмах (особенно в функциональном программировании). Поэтому еще с древнейших времен (с 1959 года) существуют языки со сборкой мусора:
Но несмотря не это, практически все современные языки используют сборку мусора, кроме C++ и Rust. C++ по большей части перешел на умные указатели, которые тоже считают количество активных ссылок, но делают это без сборщика мусора. А Rust использует свой уникальный Borrow Checker, который понимают только растофилы.
На этом вроде у меня всё.

Оказывается, про вомбата даже есть аниме "Красавцы из клуба защитников Земли". Кадр оттуда.
То вот вам в ленту Баьа-Ёжка, которая баюкает вомбатёнка.

Примерно с такой мыслёй я проснулся после вчеращнего вечера. Календарь в сотовом показал, что да, суббота. Ну а раз так:
Надеюсь я не забаянился

Это китайский квен. А отечественный шедеврум говно ебаное, хуйню генерил, каких-то людей-туристов.

Шедеврум зарубил промт: "Ортодоксальные евреи-вомбаты танцуют танец Шалом" с формулировкой: "запрос нарушает правила площадки" 😆 . Пришлось убрать и ортодоксов и, даже евреев. Зато прокатило: "Вомбаты с пейсами танцуют танец Шалом" 😃😃😃
З.Ы. И да, случилось чудо - ютруп ожил - летает
Энергичная субботняя песенка
"Wombat Encounter"
At the wombat
Wombat encounter
You might have wombat
Walk across your lap
And maybe a wombat
Will sniff your shoe lace
And you might scratch the backside
Of a wombat
Oh great Australia
Has a beautiful island
Just below it
On the map
It's called Tasmania
And if you go there
You might encounter
A wombat
Oh at the Wombat
Wombat Encounter
You might see an echidna
Or a kangaroo
You might see a bird
Or a Tasmanian devil
But mostly, you'll see a wombat
Yes, if you go there
You'll see a wombat
Oh, you'll encounter
A wombat
Wombat
Wombat
Две серии про наш талисман
Secret Life of the Wombat, 2016
1. Лес Вомбатов

2. Путь детёныша
