Нечего на зеркало пенять, коли рожа кривая. Сочинения по темам

На зеркало неча пенять, коли рожа крива – русская пословица. Указана в книге “Пословицы русского народа ” (1853 г.) В. И. Даля (раздел – “Причина – Отговорка “) – “Не на зеркало пеня, что рожа крива”, “Что на зеркало пенять, коли рожа крива”.

Буквальное значение пословицы – если ты некрасив, то в этом зеркало не виновато. В более широком смысле – нужно смотреть правде в глаза и в себе искать корень проблем и неудач.

Эту народную пословицу великий писатель Гоголь Николай Васильевич (1809 – 1852) выбрал как эпиграф к своей комедии “Ревизор ” (1836 г.). Пьеса хорошо разъясняет смысл пословицы. Городничий уездного города получил сообщение от друга, что к ним едет ревизор. Чиновнику есть чего опасаться и он собирает свой аппарат, чтобы обсудить, что делать. Во время совещания ему сообщают, что в гостинице остановился молодой человек (Хлестаков), который, по-видимому, и есть ревизор. Городничий со своими чиновниками едет в гости к Хлестакову и всячески задабривает его.

Хлестаков, на самом деле, не был ревизором, но был большим пройдохой и быстро вошел в роль ревизора, получил дорогие подарки от чиновников, чуть не женился на дочери городничего и уехал. Сразу после этого приехал настоящий ревизор и затребовал к себе городничего. Про городничего и можно сказать: На зеркало неча пенять, коли рожа крива.

(2 оценок, среднее: 2.50 из 5)



Сочинения по темам:

  1. В басне «Зеркало и обезьяна» баснописец И. А. Крылов показал непринужденный разговор двух животных, в котором медведь ткнул лицом обезьяну...
  2. Произведение «Близнецы» было написано в феврале 1878 года, а опубликовано уже после смерти Ивана Сергеевича Тургенева. Оно входит в последний...
  3. “Борис. Эх, Кулигин, больно трудно мне здесь, без привычки-то. Все на меня как-то дико смотрят, точно я здесь лишний, точно...

Константин Щербаков, «Театральная жизнь», 05.2016

«На зеркало неча пенять, коли рожа крива», - народная пословица, эпиграф к «Ревизору».

Когда кривизна рожи приобретает параметры фантасмагорические, - возникает театр абсурда. Великий театр, главные истоки и начала которого - в русской прозе, русской драматургии XIX века. Драматургии, которая имеет свойства на решающих исторических перекрестках рождаться заново, и, персонажи ее, оглядываясь по сторонам, обращаются к нам с вами с вопросом: где это мы?

Жилище Михал Васильича Кречинского, расположенное по адресу Новый Арбат, 11(там показывает премьеру театр «Эрмитаж» - пьесу Сухово-Кобылина «Свадьба Кречинского» в постановке Михаила Левитина) освящает портрет якобы сановного предка. Портрет выполнен в той манере, что повесь его вверх ногами, вкось-вкривь - вряд ли это будет замечено. Однако Михал Васильич, приглядевшись, себя в кривизне сановного портрета, наверное, узнает. Ибо он - большой знаток по этой части, по части окружающей кривизны, картинной и всякой прочей. Не только знаток, - архитектор, создатель. Таким и играет его Евгений Редько.

Сказать: русский абсурд - это еще не сказать почти ничего. Русский абсурд - он ведь чрезвычайно, ошеломительно разный.

Гоголевский смех сквозь слезы, когда волна сочувствия захватывает вас при взгляде не только на Подколесина с Агафьей Тихоновной, но и на Городничего с его семейством.

В спектакле «Балалайкин и К°» (1973 год, Товстоногов, «Современник», по «Современной идиллии» сурового, беспощадного Салтыкова-Щедрина) самые пронзительные моменты - это отчаянные вспышки стыда, случившиеся в душах мучительно оподляющихся персонажей.

В Кречинском Евгения Редько - ни капли стыда, в спектакле Михаила Левитина - ни грана сочувствия, а кривизна рож - это не обязательно кривизна рож, но обязательно - кривизна душ.

Иногда слышишь: обаяние зла. Что это такое? Кречинский в спектакле «Эрмитажа» - воплощение этого обаяния. Безусловно верится на слово, когда узнаешь, что глупенькая Лидочка Муромская - далеко не первая его жертва. Кречинский Евгения Редько - человек всесокрушающей страсти: игра, авантюра, деньги, власть - ступенька за ступенькой, а сорвалось - ну что ж, начнем заново.

Мне представлялось, что «Свадьба Кречинского» - это особняком, это еще в русле Островского, не совсем Сухово-Кобылин. В спектакле Левитина - не так. Здесь, пожалуй, весь Сухово-Кобылин сыгран, со стилистическими, смысловыми заходами и в «Дело», и в «Смерть Тарелкина».

Ну вот - окружение Кречинского. Если сказать деликатно - команда, если сказать точно - стая, где Кречинский - вожак.

Камердинер Федор - артист Александр Пожаров. Казалось, служебный персонаж. Написано - совсем немного реплик. Сыграно - через обмен с Кречинским взглядами, жестами, когда и полслова не нужно для полного взаимопонимания - сыграно многолетнее сотрудничество опытнейших двоих, из которых каждый точно знает свое место. Федор - для поддержания обыденной респектабельности.

Расплюев - для выполнения поручений сомнительных, грязных. Здесь, в исполнении артиста Константина Тумиловича, кривизна зашкаливает. Здесь - не обаяние зла, а его обноски. Вспоминаются гротески раннего Ильинского, Гарина, Мартинсона. Подумал - не слишком ли? Да нет, не слишком. Надеюсь, сказанное, молодому артисту не повредит.

Обноски - не выбросить ли за ненадобностью? Нет, нельзя выбрасывать. Все трое - Кречинский, Федор, Расплюев - так повязаны, что порознь им уже не выжить. Тем более, за ними - напрягите немного воображения - угадываются помощники, советники, менеджеры, киллеры, секретари. Стая, жадно захватывающая жизненное пространство.

Такой захват - работа не из сложных, и в этом - наигорчайшая горечь представления на Новом Арбате, 11. Кто годится, кем гордится? Это из Маяковского. Тетушка Анна Антоновна (артистка Дарья Белоусова) с ее тяжким сдвигом по фазе на почве светского блеска-треска? Кривоногий (опять кривизна!) уродец Нелькин (артист Станислав Сухарев) - ну, куда ему против Кречинского, даже и проигравшегося? Муромский (артист Сергей Олексяк), дочка его Лидочка (артистка Алла Черных) при их-то стабильном местопребывании на пустом месте?

В ряд бараны идут,
Бьют барабаны.
Кожу для них дают
Сами бараны.

Это - из Бертольта Брехта.

Наверное, можно сострадать и баранам, но вдруг - ни с того, ни с сего - о другой живности вспомнилось.

Где-то прочел: в Москве появились живодеры, которые, перекрывая единственный выход из подвала своего дома, замуровывают там бездомных кошек, нашедших приют на зиму. И подумалось: какое чувство бы я испытал, услышав стон замурованной кошки?

Бездомных кошек нынче много, и крики их перемешиваются с криками человеческими.

В спектакле Левитина нет ни баранов, ни кошек, но свой зверинец есть, как не быть. Кречинский впервые появляется на сцене в обличии бычка с красными глазами, ведя за собой цепочку подведомственных ему персонажей. (В «Тени» Шварца, одном из предыдущих спектаклей Левитина, Тень, в исполнении того же Евгения Редько тоже водила за собой послушный хоровод, но там она была все-таки тенью, а здесь, в «Кречинском», укрепилась, укоренилась настолько, что впору самой тени отбрасывать.)

Так вот, значит, бычок - кстати, из пьесы: его Кречинский дарит Муромскому, вовсе уж размякшему от такого подарка. И еще - копченая свиная туша, по воле художника Марии Кривцовой, не ведомо как занявшая на сцене место массивного колокола, вечевого, надо полагать, так и не прозвучавшего. Ну, и портрет, портрет - сановного предка. Под изощренно издевательскую музыку Владимира Дашкевича все смешалось на Новом Арбате, 11, замутилось и перепуталось.

И захотелось вдруг закричать: это не я - кривоногий уродец! И тяжкий сдвиг по фазе - не у меня! И чужой это стон из замурованного подвала. Чужой! Чужой… А вдруг - не чужой?

Так что, чего уж пенять на зеркало. Безмерный русский абсурд. Одна из его ипостасей.

Допускаю, что спектаклю «Свадьба Кречниского на Новом Арбате 11» не хватает гуманистического начала. Но как быть этого начала достойными - вот о чем тоже не мешает подумать. Нам всем. Для того хотя бы, чтобы не оказаться на грани не вполне гуманистического конца.

«На зеркало неча пенять, коли рожа крива.» (Эпиграф и сюжет комедии Н. В. Гоголя «Ревизор».)

В качестве эпиграфа к своей бессмертной комедии Н. В. Гоголь взял известную пословицу «На зеркало неча пенять, коли рожа крива».

Эпиграф появился не сразу, а через шесть лет после выхода комедии в свет. Он стал ответом Гоголя многочисленным критикам, которые буквально обрушились и на саму пьесу, и на ее автора. Вероятно, они узнали в героях комедии себя. Ведь Гоголь вывел на сцену практически все русские характеры. Были вскрыты общественные пороки, порожденные крепостническим строем, - взяточничество, казнокрадство, лень, угодничество, и многие другие. Гоголь показал их так ярко и убедительно, что комедия приобрела силу документа, обличающего существующий строй.

Сюжет ее необычайно прост: в уездном городе ожидают приезда ревизора. Впопыхах принимают за ревизора другого человека, а когда он уезжает, ошибка выясняется, и тут приезжает настоящий ревизор. Первое действие начинается словами городничего - фразой, которую, наверное, каждый житель России знает наизусть: «Я пригласил вас, господа, с тем, чтобы сообщить вам пренеприятное известие. К нам едет ревизор». Таким образом, первая же реплика стала основой завязки сюжета. И вот все они - городничий, судья, попечитель богоугодных заведений, почтмейстер и другие чиновники - с ужасом ждут этого события. Они ждут его как часа расплаты за все свои грехи. Им есть чего бояться - у каждого «рыльце в пуху». Каждый из них знает, во что превратился их уезд. А потому нужно немедленно что-то делать, «чтобы все было прилично». Например, привести в порядок богоугодные заведения, чтобы «колпаки были бы чистые, и больные не походили бы на кузнецов», а также что-то сделать с присутственными местами, где «сторожа завели домашних гусей с маленькими гу-сенками».

Городничий дает последние наставления: «...разметать наскоро старый забор... и поставить соломенную веху, чтобы было похоже на планировку», убрать мусор, которого «навалено на сорок телег», а главное, если приезжий чиновник будет спрашивать: «Довольны ли?», отвечать: «Всем довольны, ваше благородие». Сам же он при этом восклицает: «Что это за скверный город!»

Но самое неприятное заключается в том, что ревизор должен приехать инкогнито, то есть подозревать можно каждого нового в городе человека. Выбор падает на первого попавшегося приезжего, поселившегося в местной гостинице. Прежде чем Хлестаков появляется на сцене, мы всё узнаем о нем от его слуги Осипа. Это - коллежский регистратор («елистратишка простой»), который второй месяц, как сбежал из Питера: «Профинтил дорогою денежки, голубчик, теперь сидит и хвост подвернул и не горячится». Поселившись в гостинице, Хлестаков уже успел вкусить «прелести» местной жизни. Поэтому он не может понять, что за делегация к нему явилась во главе с городничим. В результате «оба в испуге смотрят несколько минут один на другого, выпучив глаза». Хлестаков и городничий до смерти боятся друг друга - об этом свидетельствуют ремарки: «робея», «храбрясь», «вытянувшись и дрожа всем телом» и др. Но как все меняется, когда Хлестаков наконец догадывается, что происходит! Он призывает на помощь всю свою неудержимую фантазию и старается максимально извлечь пользу из сложившейся ситуации. Он с радо- . стью принимает взятки, лицемерно изображая, что берет «взаймы». Он очаровывает жену и дочь городничего, которые настолько глупы, что легко попадаются на эту удочку. «Ах, какой приятный!»- говорит одна, «Ах, милашка!» - восклицает другая.

Хлестаков лжет так вдохновенно, что едва ли сам не начинает верить в свои выдумки. Чиновники же, дрожащие от страха перед «грозным ревизором», даже не задумываются о том, может ли такое быть на самом деле.

Хлестаков делает предложение Марье Антоновне (городничий в такое счастье даже поверить не может). Однако лошади готовы, и счастливый жених собирается уезжать: «На одну минуту только... на один день к дяде - богатый старик; а завтра же и назад».

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

Комедия заканчивается немой сценой. И почему-то кажется, что в эту минуту замерли не только герои пьесы - замерла вся Россия перед сокрушительной правдой, брошенной ей в лицо гениальным Мастером.

«На зеркало неча пенять, коли рожа крива», - народная пословица, эпиграф к «Ревизору».

Когда кривизна рожи приобретает параметры фантасмагорические, - возникает театр абсурда. Великий театр, главные истоки и начала которого - в русской прозе, русской драматургии XIX века. Драматургии, которая имеет свойства на решающих исторических перекрестках рождаться заново, и, персонажи ее, оглядываясь по сторонам, обращаются к нам с вами с вопросом: где это мы?

Жилище Михал Васильича Кречинского, расположенное по адресу Новый Арбат, 11(там показывает премьеру театр «Эрмитаж» - пьесу Сухово-Кобылина «Свадьба Кречинского» в постановке Михаила Левитина) освящает портрет якобы сановного предка. Портрет выполнен в той манере, что повесь его вверх ногами, вкось-вкривь - вряд ли это будет замечено. Однако Михал Васильич, приглядевшись, себя в кривизне сановного портрета, наверное, узнает. Ибо он - большой знаток по этой части, по части окружающей кривизны, картинной и всякой прочей. Не только знаток, - архитектор, создатель. Таким и играет его Евгений Редько.

Сказать: русский абсурд - это еще не сказать почти ничего. Русский абсурд - он ведь чрезвычайно, ошеломительно разный.

Гоголевский смех сквозь слезы, когда волна сочувствия захватывает вас при взгляде не только на Подколесина с Агафьей Тихоновной, но и на Городничего с его семейством.

В спектакле «Балалайкин и К°» (1973 год, Товстоногов, «Современник», по «Современной идиллии» сурового, беспощадного Салтыкова-Щедрина) самые пронзительные моменты - это отчаянные вспышки стыда, случившиеся в душах мучительно оподляющихся персонажей.

В Кречинском Евгения Редько - ни капли стыда, в спектакле Михаила Левитина - ни грана сочувствия, а кривизна рож - это не обязательно кривизна рож, но обязательно - кривизна душ.

Иногда слышишь: обаяние зла. Что это такое? Кречинский в спектакле «Эрмитажа» - воплощение этого обаяния. Безусловно верится на слово, когда узнаешь, что глупенькая Лидочка Муромская - далеко не первая его жертва. Кречинский Евгения Редько - человек всесокрушающей страсти: игра, авантюра, деньги, власть - ступенька за ступенькой, а сорвалось - ну что ж, начнем заново.

Мне представлялось, что «Свадьба Кречинского» - это особняком, это еще в русле Островского, не совсем Сухово-Кобылин. В спектакле Левитина - не так. Здесь, пожалуй, весь Сухово-Кобылин сыгран, со стилистическими, смысловыми заходами и в «Дело», и в «Смерть Тарелкина».

Ну вот - окружение Кречинского. Если сказать деликатно - команда, если сказать точно - стая, где Кречинский - вожак.

Камердинер Федор - артист Александр Пожаров. Казалось, служебный персонаж. Написано - совсем немного реплик. Сыграно - через обмен с Кречинским взглядами, жестами, когда и полслова не нужно для полного взаимопонимания - сыграно многолетнее сотрудничество опытнейших двоих, из которых каждый точно знает свое место. Федор - для поддержания обыденной респектабельности.

Расплюев - для выполнения поручений сомнительных, грязных. Здесь, в исполнении артиста Константина Тумиловича, кривизна зашкаливает. Здесь - не обаяние зла, а его обноски. Вспоминаются гротески раннего Ильинского, Гарина, Мартинсона. Подумал - не слишком ли? Да нет, не слишком. Надеюсь, сказанное, молодому артисту не повредит.

Обноски - не выбросить ли за ненадобностью? Нет, нельзя выбрасывать. Все трое - Кречинский, Федор, Расплюев - так повязаны, что порознь им уже не выжить. Тем более, за ними - напрягите немного воображения - угадываются помощники, советники, менеджеры, киллеры, секретари. Стая, жадно захватывающая жизненное пространство.

Такой захват - работа не из сложных, и в этом - наигорчайшая горечь представления на Новом Арбате, 11. Кто годится, кем гордится? Это из Маяковского. Тетушка Анна Антоновна (артистка Дарья Белоусова) с ее тяжким сдвигом по фазе на почве светского блеска-треска? Кривоногий (опять кривизна!) уродец Нелькин (артист Станислав Сухарев) - ну, куда ему против Кречинского, даже и проигравшегося? Муромский (артист Сергей Олексяк), дочка его Лидочка (артистка Алла Черных) при их-то стабильном местопребывании на пустом месте?

В ряд бараны идут,
Бьют барабаны.
Кожу для них дают
Сами бараны.

Это - из Бертольта Брехта.

Наверное, можно сострадать и баранам, но вдруг - ни с того, ни с сего - о другой живности вспомнилось.

Где-то прочел: в Москве появились живодеры, которые, перекрывая единственный выход из подвала своего дома, замуровывают там бездомных кошек, нашедших приют на зиму. И подумалось: какое чувство бы я испытал, услышав стон замурованной кошки?

Бездомных кошек нынче много, и крики их перемешиваются с криками человеческими.

В спектакле Левитина нет ни баранов, ни кошек, но свой зверинец есть, как не быть. Кречинский впервые появляется на сцене в обличии бычка с красными глазами, ведя за собой цепочку подведомственных ему персонажей. (В «Тени» Шварца, одном из предыдущих спектаклей Левитина, Тень, в исполнении того же Евгения Редько тоже водила за собой послушный хоровод, но там она была все-таки тенью, а здесь, в «Кречинском», укрепилась, укоренилась настолько, что впору самой тени отбрасывать.)

Так вот, значит, бычок - кстати, из пьесы: его Кречинский дарит Муромскому, вовсе уж размякшему от такого подарка. И еще - копченая свиная туша, по воле художника Марии Кривцовой, не ведомо как занявшая на сцене место массивного колокола, вечевого, надо полагать, так и не прозвучавшего. Ну, и портрет, портрет - сановного предка. Под изощренно издевательскую музыку Владимира Дашкевича все смешалось на Новом Арбате, 11, замутилось и перепуталось.

И захотелось вдруг закричать: это не я - кривоногий уродец! И тяжкий сдвиг по фазе - не у меня! И чужой это стон из замурованного подвала. Чужой! Чужой… А вдруг - не чужой?

Так что, чего уж пенять на зеркало. Безмерный русский абсурд. Одна из его ипостасей.

Допускаю, что спектаклю «Свадьба Кречниского на Новом Арбате 11» не хватает гуманистического начала. Но как быть этого начала достойными - вот о чем тоже не мешает подумать. Нам всем. Для того хотя бы, чтобы не оказаться на грани не вполне гуманистического конца.

  • Перевод

Одной из самый угнетающих вещей для каждого программиста является осознание того, что все ваше время тратится не на создание чего нибудь полезного, а на устранение проблем, которые мы же сами и создаем.

Этот процесс называется отладка. Каждый день, каждый программист предстает перед тем фактом, что когда он пишет код - он создает и ошибки в коде. И как только он понимает, что его программа не работает, он должен искать проблемы, которые сам же и создал.

Для решения таких проблем, компьютерная индустрия создала огромное количество инструментов, которые помогают вам убедится, что программа работает правильно. Программисты, для поиска ошибок, используют методы непрерывной интеграции , unit-тестирование , утверждения , отладчики , и т.д. Но ошибки все равно остаются, и должны быть устранены с помощью человеческого мышления.

Некоторые языки программирования, такие например как С, чрезвычайно восприимчивы к таким видам ошибок, которые появляются и исчезают случайным образом, и как только вы начинаете разбираться в причине их появления они сразу пропадают. Такие ошибки часто называют Гейзенбагами , потому что как только вы начинаете их искать, они исчезают.

Такие ошибки могут возникать в любом языке программирования, особенно при написании многозадачного кода, где малейшие задержки во времени могут вызвать состояние гонки . Но в C есть другая проблема - утечка памяти.

Однако, что бы не вызвало ошибку, ключевые шаги при поиске проблемы всегда следующие:

  • Найти наименьшую закономерность, при которой ошибка полностью воспроизводится. С гейзенбагами это может оказаться сложным, но даже небольшой процент испытаний, при которых ошибка воспроизводится является значимым.
  • Автоматизировать процесс испытаний. Намного лучше, когда можно запускать тест снова и снова. Можно даже сделать его частью программы, когда ошибка будет устранена - это не допустит появления ошибки вновь.
  • Искать причину, пока не будет найдена её основа. До тех пор, пока вы не найдете истинную причину возникновения ошибки, вы не можете с уверенностью говорить, что вы её исправили. С гейзенбагами можно очень просто сбиться с толку, полагая, что вы исправили ошибку, после того как она вдруг исчезнет после того что вы сделаете в процессе поиска.
  • Исправить причину и проверить с помощью шага 2.
Недавно, в Hacker News появилась стаьтя - Если у вас гейзенбаг в С - значит проблемма в вашем оптимизаторе компилятора . Это очень неверное суждение.

Компилятор, который вы используете, вероятно, используют тысячи людей, в то время как вашу программу используете скорее всего только вы. Как вы думаете, что, компилятор или ваша программа работает наиболее стабильно?

В самом деле, признаком неопытности программиста является тот факт, что первое, что они делают при поиске ошибки - сваливают вину на кого-то другого. Очень заманчиво винить компьютер, операционную систему, библиотеку, которую вы используете. Однако настоящий программист тот, кто может контролировать своё «Я» и осознать что ошибка вероятнее всего его.

Конечно, ошибки бывают и в коде других программистов. Нет сомнений, что библиотека может не работать, операционная система может делать непонятные вещи, а компилятор генерировать странный код. Но чаще всего - это ваша ошибка, и это применимо даже в том случае, когда ошибка выглядит слишком странно.

В процессе отладки вы, зачастую, бьетесь головой об собственный код и повторяете вновь и вновь самые невозможные вещи, которые просто не могут произойти с вашим кодом. Однако в один прекрасный момент невозможная становится возможной и тогда вы находите ошибку.

В статье выше есть один определенно не завершенный пример:

«Отключите оптимизатор и проверьте программу снова. Если она работает - значит проблема в оптимизаторе. Поиграйтесь с уровнями оптимизации, поднимая уровень до тех пор, пока ошибка не начнет воспроизводится.»

Все что вы знаете когда меняете уровни оптимизации - это то, что уровни меняются независимо от того, появляется ошибка или нет. Это не говорит вам о том, что оптимизатор работает неверно. Вы не нашли искомую причину ошибки.

Так как оптимизаторы производят манипуляции с кодом для ускорения их работы, вполне вероятно, что в зависимости от уровня оптимизации гейзенбаги могут как появляться так и исчезать. Это ещё не значит что оптимизатор работает неправильно. Это все ещё, вероятнее всего, ваша ошибка.

Вот конкретный пример программы на C которая содержит ошибку, появляющуюся при изменении уровня оптимизации компилятора, и показывает странное поведение программы.

#include

Int a()
{
int ar;
ar = (getpid() % 19 == 0);
}

Int main(int argc, char * argv)
{
int rc;
rc = 0;
a();
return rc;
}

Скомпилируйте эту программу с помощью gcc под Mac OS X с помощью следующего Makefile (я сохранил код в файле odd.c).

CC=gcc
CFLAGS=

И вот пример скрипта, который запускает программу 20 раз и выводит результат:

#!/bin/bash
for i in {0..20}
do
./odd ; echo -n "$? "
done
echo

Если вы запустите этот скрипт, вы будете ожидать строку нулей, поскольку rc никогда не получает значений отличных от нуля. Однако вот пример работы программы:

$ ./test
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Если вы опытный программист C, вы увидите как я сделал чтобы появлялась единица, и почему она появляется в разных местах. Но давайте теперь попробует отладить программу с помощью printf:

[...]
rc = 0;
printf("[%d]", rc);
a();
[...]

Теперь, когда вы запустите программу, ошибка исчезнет.

$ ./test
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

Выглядит странно, поэтому вы перемещаете printf в другое место:

[...]
rc = 0;
a();
printf("[%d]", rc);
[...]

И получаете тот же странный результат с исчезновением ошибки. И то же самое произойдет если вы отключите оптимизатор и даже без printf ошибка не будет появляться:

$ make CFLAGS=-O3
gcc -O3 -c -o odd.o odd.c
gcc odd.o -o odd

$ ./test
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Это все происходит, потому что ф-я a() выделяет память для 16-ти Integer элементов. И тут же записывает после конца массива либо 1 либо 0 в зависимости от того, делится ли PID процесса на 19 или нет. В конечном итогде она записывается в rc из-за расположения в стеке.

Добавление printf или изменение уровня оптимизации меняет расположение кода и исключает неверное обращение к rc. Но, будьте осторожны, ошибка не ушла. Единица просто записалась в другую ячейку памяти.

Т.к. C очень восприимчив к этому типу ошибок, важно использовать хорошие инструменты для проверки таких проблем. Например статический анализатор кода




Top