4

Не могу понять, как и почему работает эта программа.

#include <iostream>

int main() { void* x = &x; std::cout << x << '\n'; }

riot
  • 94

1 Answers1

-2

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

Cerbo
  • 6,863
  • Можно конкретней где и почему неопределённое поведение? – riot Jul 14 '20 at 08:45
  • @riot дополнил ответ – Cerbo Jul 14 '20 at 08:59
  • 6
    Получение адреса неинициализированный переменной не является неопределенным поведением. – user7860670 Jul 14 '20 at 09:02
  • Не является ответом на вопрос. Чтобы оставить свои замечания или попросить у автора внести уточнения, оставьте комментарий к соответствующему сообщению. — из очереди проверок – USERNAME GOES HERE Jul 14 '20 at 09:03
  • @VictorVosMottorthanksMonica Почему не является ответом на вопрос? – Cerbo Jul 14 '20 at 09:08
  • @AlexF Да мое дело — очередь проверок. Вижу ответ без кода, маленький и с минусом, голосую за удаление. Если он хорош — я не виноват т.к. в очереди голосует за "Выглядит нормально" и "Рекомендовать удаление", проверяющий не обязан знать все метки/языки. – USERNAME GOES HERE Jul 14 '20 at 09:38
  • 2
    @VictorVosMottorthanksMonica "проверяющий не обязан знать все метки/языки", - на это очень хочется нагрубить в ответ. Но я отвечу, что у проверяющего есть кнопка "Пропустить", нажимайте ее если не понимаете о чем речь в тексте. – Cerbo Jul 14 '20 at 10:42
  • @AlexF Ну окей, не спорю. – USERNAME GOES HERE Jul 14 '20 at 11:18