Я вполне уверен, что массивы встроенных типов унифицированы, тогда как массивы UDT инициализируются по умолчанию.
int foo[5]; // will contain junk
Foo foo[5]; // will contain 5 Foo objects that are default initialized
Это происходит независимо от того, выделен ли массив в стеке или куче.
Однако мне трудно найти авторитетный источник. Бьярне утверждает, что:
"Члены массивов и структур по умолчанию инициализируются или не зависят от того, является ли массив или структура статичным", что на самом деле не говорит мне слишком много.
Я также пытался найти что-то в стандарте, но до сих пор ничего не получилось.
Кто-нибудь знает об авторитетном источнике, чтобы подтвердить это?