А почему так, почему не на нулевую страницу памяти?
не всегда на самом деле, но вообще так исторически сложилось
А можно по подобронее, если не сложно? Указатель в общем случае вообще на рандомный байт может указывать?
потому что некоторые операционные системы не обязаны инициализировать нулями выделенную память, некоторые считают что лучше быстрее память выделить и отдать программе, чем тратить дополнительное процессорное время на её зануление(этим бывает занимается ядро некоторых ОС)
он ни на что не указывает, просто там мусор может быть, как и в любом встроенном типе
вопрос кажется не про это был
при дереферренсе будет сегфолт или "нормально" прожуёт?
по той же причине почему int a; не 0 по-умолчанию
в С99 0 по умолчанию ЕМНИП
для переменных на стеке не требуется zero initialization, от силы ты смотришь debug версию, которая грешит "занулением"
Труп Страуса вроде писал в своей книге, что в С99 умолчательный нуль для всех интегральных типов
в С так же как и С++: If an initializer is not provided: objects with automatic storage duration are initialized to indeterminate values (which may be trap representations) objects with static and thread-local storage duration are zero-initialized
это каких годов стандарты?
это cppref, если у тебя есть ссылка на цитату С99 по инициализации, велкам
честно, я не помню точно, или в С99 убрали умолчательную инициализацию, или только собирались в следующем стандарте (по словам Бьярне)
Обсуждают сегодня