
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.3] |
![]() |
|
Страницы: (6) « Первая ... 4 5 [6] все ( Перейти к последнему сообщению ) |
Сообщ.
#76
,
|
|
|
Цитата Wound @ На что валидируется? На то что если он не нулевой, то вызвать член через указатель? А расскажи ка, когда он у тебя будет нулевым? В каком месте он у тебя нулевой? Там мусор будет содержатся, и соответственно твоя валидация сработает не так, как ты ожидаешь. Ты прав. Ты прав. ![]() |
![]() |
Сообщ.
#77
,
|
|
В дебаге там сразу 0 на стеке, в релизе не 0.
|
Сообщ.
#78
,
|
|
|
Цитата Qraizer @ В дебаге там сразу 0 на стеке Ну это я уж догадался. Вопрос в другом. Почему в остальных (с++11, с++14) в дебаге не нуль, а мне только"повезло" с с++17 и только со студийным компилером? Вот тут мистика. |
Сообщ.
#79
,
|
|
|
Ну мож в новых студиях стали очищать стэк. Заботятся.
![]() |
Сообщ.
#80
,
|
|
|
Цитата JoeUser @ Потому что стандарт не требует инициировать переменные на стеке нулём. Почему в остальных (с++11, с++14) в дебаге не нуль |
![]() |
Сообщ.
#81
,
|
|
Та не, просто повезло. Хотя в данном случае, скорее не повезло. 100пудово в прологе main() стоит что-то типа sub esp, XX, где XX суммарный размер локальных переменных, и нули весьма глубоко внутри стека на входе в main() никак от самой main() не зависят.
|
![]() |
Сообщ.
#82
,
|
|
Вообще достаточно странно, потому что студия на моей памяти в дебаге всегда переменные инициализировала чем-то вроде 0xCCCCCCCC.
|
Сообщ.
#83
,
|
|
|
Цитата Qraizer @ Вообще достаточно странно Да нет, я уже спрашивал. Но мне в тупую ответили: Цитата amk @ Потому что стандарт не требует инициировать переменные на стеке нулём. amk, извини, но это СТАНДАРТНЫЙ ОТВЕТ от Копетана Очевидность! Ну не требует и не требует... Но почему одна и та же студия при указании разных стандартов ведет себя по разному? Я же привел таблицу выше! |
![]() |
Сообщ.
#84
,
|
|
Цитата JoeUser @ Но почему одна и та же студия при указании разных стандартов ведет себя по разному? Потому что создатель компилятора поспорил со своим коллегой, что это изменение кодревью пройдёт ![]() |
![]() |
Сообщ.
#85
,
|
|
Цитата JoeUser @ Поиграйся оптимизацией, скорее всего и в дебаге, и в релизе сможешь получить оба эффекта. Ну не требует и не требует... Но почему одна и та же студия при указании разных стандартов ведет себя по разному? |