Ich habe die folgenden DatenstrukturenArray Initialisierung mit Strukturen
struct single_t
{
uint16_t i1 = 0;
uint8_t i2 = 0;
uint8_t i3 = 0;
};
struct mapping_t
{
uint8_t n1;
uint8_t n2;
bool enable;
uint n3;
std::array<single_t, 32> map;
};
Ich möchte, dass sie in der folgenden Art und Weise initialisieren:
mapping_t m1 {
3, // n1
254, // n2
true, // enable
5, // n3
// map
// i1 i2 i3
{{
{0x1000, 1, 8}
}}
};
kann ich sicher sein, dass die Elemente in der std::array<single_t, 32> map;
, in dieser Fall indiziert 1..31, werden auf 0 initialisiert oder ist es wie die nicht initialisierte Variable auf dem Stapel int i;
? Mein Debugger zeigt an, dass sie bei 0 sind, aber hängt diese Implementierung vom Debug-Build ab oder ist dies im Standard definiert?
Die Elemente 1 - 31 von 'm1' werden initialisiert, d. H. In Ihrem Fall auf Null initialisiert. Dein Code ist in Ordnung. –