Mise a zéro d'une structure par des accolades vides
Bonjour,
Si j'ai bien compris, on peux maintenant initialiser tous les membres d'une structure à 0 en utilisant des accolades vide
Seulement ce n'est pas ce qui se passe dans ce code sous visual 2013
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
struct A
{
unsigned char val;
};
struct B : public A
{
};
struct C
{
A a;
};
int main (int argc, char* argv[])
{
B b;
C c;
b.val = 1;
b = {};//val = 204 <= pourquoi???
c.a.val = 1;
c = {};//a.val = 0 <= OK
return 0;
} |
Sur la struct B, cela initialise toute la mémoire par des valeurs 8bits de valeurs 204.
Je ne comprend pas pourquoi, la structure B ne se met pas à zéro.
Si quelqu'un as une idée.
merci
Yan