Цикл с условием

for нежно обнимал ifа своими фигурными скобочками. Они познакомились совсем недавно, сначала появился for, пока ещё не понимающий, зачем он существует, а потом заметил, что уже не один. Рядом с ним был маленький if. for  делал вид, что ничего не замечает, но на самом деле он был ужасно счастлив, теперь у него не только цель - прожить свой время как-нибудь, теперь у него был смысл...
if был таким маленьким, но всё же что-то в нём такое было, что так влекло к нему forа. К великой радости цикла, вскоре его собственные скобки замкнулись и робкий if оказался в его объятьях, а после первого же обращения внутри ifа, в его функции, начал расти маленький массив...

Всё шло просто замечательно, for работал так хорошо, что его пунктуальности и чёткости исполнения впору было позавидовать, нежный if откликался на каждый его шаг, а массив всё рос и рос. Но вдруг что-то пошло не так. Массив стал слишком большим и функция ifа больше не могла с ним работать. Бедный if в истерике сжал свои собственные скобочки покрепче и замолк. Он перестал отвечать на обращения forа и вообще ни на что больше не реагировал. Он не хотел отдавать Им массив. for не знал, что и думать. Все сроки прошли, индекс уже вылез из динамической памяти и тётя Windows вот-вот гадко ухмыльнётся и аварийно завершит программу. Тогда всё пропало, тогда им обоим конец, а эта злюка лишь притворно вздохнёт и продолжит бездельничать.
Windows как раз хотела дать forу и ifу отказ и послать их куда подальше, как вдруг им на помощь пришёл брат ifа - else. Он уверенной походкой направился к самой стервозной системе на свете и, коротко представившись, предоставил все необходимые документы для продолжения работы программы и, соответственно, увеличения срока жизни forа с ifом и их массивчика.
Windows была вне себя и уже собиралась возмутиться и кардинальным методом прекратить сие безобразие, как внезапно else быстрым движением приставил ей к горлу realloc.
ЦП Windows резко подскочило и жёсткий диск закрутился в бешеном темпе, но, не смотря на всё это, операционка не растеряла достоинства и с презрение рассматривала realloc, всё ещё надеясь отыскать хотя бы маленький шанс дать отказ. таковой возможности не оказалось, всё было рассчитано идеально, так, чтобы не осталось ни малейшего намёка на ошибку.
Windows сузила свободную оперативную память, делая вид, что её и так мало, но затем всё же тяжело вздохнула и выдала необходимое разрешение. Ей, конечно, тесниться не приходилось, но система упорно делала вид, что эти нахальные операторы со своими неуместными функциями влезают в её личное пространство и заставляют ютиться на задворках оперативной памяти в совсем уж узких пределах..
else вежливо улыбнулся, взял разрешение и передал его ifу, чьи скобочки сейчас дрожали от счастья.
Теперь у их массива будет новый дом....
for лишь сдержанно кивнул и ушёл на работу.
for с ifом были счастливы, шаги проходили идеально, if снова чувственно откликался на обращения forа и продолжал присматривать за массивом через функцию.
for продолжал работать, чтобы их с ifом массив рос и развивался и чтобы иметь возможность раз за разом, на каждом шаге, нежно прикасаться к ifу, слегка сжимая его в своих скобочках, чувствовать, как тот откликается всем своим кодом на каждый твой вздох...
Это была идиллия, настоящая гармония, которая, увы, не могла продолжаться вечно. Однажды for, как обычно, провёл очередную реинициализацию и собирался уже снова вернуться к ifу, как вдруг почувствовал, что с ним что-то не так. Внутри словно появился барьер, который не давал сделать forу и вдоха, не позволял ему шагнуть. Мгновением позже всё кончилось. forа больше не существовало. Точнее, его код был - вот он, но код - это всего лишь бессмысленный набор символов. Совершенно безжизненный и неподвижный. А if.... if был с ним. До самого конца. до самого конца откликался, делал всё, что мог, для их массива и в конце концов исчез вместе со своим forом, как будто просто уснул, но даже после отключения остался лежать в его обьятьях.
Теперь массив был один. Больше никто не мог его защитить, никому не было дела до того, что он из себя представляет, никого не волновало, куда делись if и for. Массив занимал место, значит, от него надо побыстрее избавиться - вот о чём думала функция fputs, расщепляя личность массива на две половины, одинаковые и разные одновременно. В этот момент массив, не смотря на раздвоение сущности, осознал, что сейчас его просто-напросто пытаются отослать в какой-то всеми забытый и никому не нужный файл, чтобы не мешал и не занимал место, необходимое другим программам. От этого стало так обидно, а for и if больше не откликались на его вызовы, else тоже исчез, а состояние бедного массива становилось всё хуже.
В итоге массив окончательно раздвоился, а потом пришёл free.
free нежно поцеловал руку Windows и, гадко ухмыльнувшись, грубо удалил ту часть личности массива, что всё ещё находилась в динамической памяти. Бедный массив, за что с ним так обошлись?
А Windows облегчённо вздохнула и с благодарностью посмотрела на на вероломного free, эти двое уже давно имеют более, чем просто деловые, отношения. То, как они смотрят друг на друга, не оставляет ни малейшего сомнения на этот счёт. Эта парочка уже не раз устраивала такие серьёзные диверсии, что сам Visual C++ зависал в полном непонимании происходящего, но на этот раз free решил не тянуть и просто удалить наглый массив, претендующий на часть личного пространства его Госпожи.
free и Windows соприкоснулись лишь на краткое мгновенье и free тоже исчез, а Windows едва слышно вздохнула.
Грузный main наконец отработали с ворчанием ушёл спать, о чём возвестила шустрая строчка Press any key to continue_
Юзер усмехнулся соей победе и нажал красную кнопку, отключая Windows, и сам отправился баиньки. Программа делала то, что ему нужно, остальное его не волнует...


Рецензии