main
не является реальной точкой входа исполняемого файла, в общем случае реальная точка входа берется библиотекой времени выполнения (и в VC ++ определенно так), которая выполняет некоторые задачи инициализации CRT и затем вызывает ваш main
, Это значение, вероятно, является остатком одного из вызовов функций, выполняемых кодом инициализации; Разница между сборками Debug и Release, вероятно, связана с разным управлением инициализацией / стеком между двумя конфигурациями. Кстати, это просто вероятность того, что такие значения всегда одинаковы, возможно, они принадлежат некоторому параметру / переменной, каждый раз принимающим одно и то же значение.
Если это не так, возможно, это что-то из какой-то другой задачи инициализации, встроенной в ваш процесс. Это не что-то из других процессов или просто «случилось», чтобы быть в этом месте в физической памяти, так как Windows (на которой запущено ваше приложение) никогда не отдает страниц памяти, которые принадлежали другим процессам, без предварительной их очистки.
Тем не менее, имейте в виду, что для стандарта неинициализированные переменные имеют " неопределенное начальное значение " (§3.3.1 ¶9), поэтому вам не следует полагаться на значения, которые вы может получить, читая неинициализированные переменные. Если вам нужны случайные числа, используйте соответствующие библиотечные функции.
<ч />
Я забыл ... void main
не является допустимым C ++, он должен быть int main
(§3.6.1 ¶2, "Он должен иметь тип возврата типа int
" ).