Namespaces
Variants
Actions

Talk:c/language/array initialization

From cppreference.com

I believe this site lacks the documentation of how array elements are initialized if the initializer list is smaller than the number of elements, like

 int x[3] = {1};

There are (correct) examples that the remaining entries are set to zero, but I'd recommend it should be documented in a sentence somewhere, like this:

 If the initializer list is smaller than the number of elements in the array, all remaining array entries are set to zero.

217.225.207.234 02:45, 29 November 2019 (PST)

the page does say this, near the top, "All array elements that are not initialized explicitly are initialized implicitly the same way as objects that have static storage duration" --Cubbi (talk) 11:06, 29 November 2019 (PST)
Absolutely, thanks! 88.217.183.138 23:58, 2 December 2019 (PST)
That statement doesn't help here. If I didn't know the rules of the language I would have no idea what the above statement is explicitly initialising. 121.200.5.238 21:13, 10 June 2020 (PDT)


The following example is misleading in context (though correct):

 int z[3] = {0}; // z has type int[3] and holds all zeroes

Simply changing it to:

 int z[3] = {1}; // z[0] is 1, z[1] and z[2] are 0

Will be both correct and not misleading.

121.200.5.238 21:13, 10 June 2020 (PDT)