спец-команда готова выехать к создателю этого проекта.
PS: думаете голоса пары сотен тысяч человек как-то повлияют на результаты «демократических» выборов?
Certain sets of names and function signatures are always reserved to the implementation:
Each name that contains a double underscore (_ _) or begins with an underscore followed by an uppercase letter (2.11) is reserved to the implementation for any use.
Each name that begins with an underscore is reserved to the implementation for use as a name in the global namespace.
то есть _a вполне корректно внутри класса, но только не в global namespace'e
а вот _A уже нельзя юзать.
у меня была похожая ситуация, косяк был не в некорректной инициализации, а в том что я рано память высвобождал, а линки на неё были.
в Debug-сборке работало, а в Release валилось на ура, и я никак не мог догнать почему.
Логгирование памяти тогда помогло.
любой сертификат это + для работодателя, а если еще и от контрибьютора языка, то плюс в двойне.
конечно, это не избавит от интервью и тестового задания, но весу добавит определенно.
очень просто, мы объявляем локальную переменную b, которая в scope main()'a используется вместо глобальной.
а так как b не инициализирована то туда попадает мусор
Почему значение стековой (auto) переменной как правило будет детерминировано даже на системах без обнуления свободной памяти?
Глупый вопрос.
Перед выполнением main()'a исполняется код crt, который может оставлять на стеке что угодно.
В одной версии crt — на стеке по этому адресу лежит константа, в другой — переменная, которая содержит, например, версию ОСи, и т.д.
Может ли какая-нибудь правильная реализация на системах с обнулением памяти при каждом запуске выдавать разные значения?
легко, смотрите предыдущий ответ :)
даже если не используем crt, то предварительно выполняется системный код, например для WinNT одна из функций это LdrpInitializeProcess().
PS: думаете голоса пары сотен тысяч человек как-то повлияют на результаты «демократических» выборов?
17.4.3.2.1 Global names [lib.global.names]
Certain sets of names and function signatures are always reserved to the implementation:
то есть _a вполне корректно внутри класса, но только не в global namespace'e
а вот _A уже нельзя юзать.
Может потому что я читал стандарт Си и писал свой компилятор :)
она включает в себя те 90 вопросов.
там 171 вопрос и полезные ссылки.
в Debug-сборке работало, а в Release валилось на ура, и я никак не мог догнать почему.
Логгирование памяти тогда помогло.
конечно, это не избавит от интервью и тестового задания, но весу добавит определенно.
мусор он и есть мусор :)
Хотя возможно создали новую БД, а не юзали уже существующую.
а так как b не инициализирована то туда попадает мусор
Глупый вопрос.
Перед выполнением main()'a исполняется код crt, который может оставлять на стеке что угодно.
В одной версии crt — на стеке по этому адресу лежит константа, в другой — переменная, которая содержит, например, версию ОСи, и т.д.
легко, смотрите предыдущий ответ :)
даже если не используем crt, то предварительно выполняется системный код, например для WinNT одна из функций это LdrpInitializeProcess().
А кодировка исключается ввиду B2.