構造体を作成するためにイニシャライザリストを使用すると、イニシャライザリストに構造体よりも少ない要素が含まれていると、残りの要素がゼロで初期化されています。構造体より少ない要素を持つC++初期化子リスト
私のコンパイラ(VS2015)が私のためにメモリをゼロにすることにしたので、これは未定義の動作ですか?
誰かがこの動作をC++で説明しているドキュメントを教えてくれますか?
これは私のコードです:
struct Thing {
int value;
int* ptr;
};
void main() {
Thing thing { 5 };
std::cout << thing.value << " " << thing.ptr << std::endl;
}
そして、これは、それが印刷さです:
5 00000000
最後の要素は初期化子なしゼロしまったものであること。
この '{5}'は最初の値 '5'と残りの '0'だけを設定します – DimChtz
@DimChtzこれで配列を初期化するのと同じですか? int a [5] = {5}は、指定されていないすべての要素をゼロに設定します。 – MondKin
@DimChtzドキュメント内でこれを検索する方法がわかっていますか? – MondKin