typedef struct : Initialisation par Défaut

typedef struct foo
{
    bool my_bool;
    int my_int;
} foo;

Dans l'exemple ci-dessus, je comprends que my_bool sera initialisé aléatoirement soit vrai ou faux, mais qu'en est my_int? Je suppose que my_int serait initialisé par défaut à 0, mais cela ne semble pas être le cas.

La définition des structures dans cette voie semble être incompatible avec l'initialisation des listes quelle est la meilleure façon d'initialiser my_bool et my_int pour faux et 0 respectivement?

Êtes-vous sûr que c'est le C++?
Pas de bool en C. Mais vous avez un point de toute façon.
"my_bool sera initialisé aléatoirement soit vrai ou faux" - peut-être, mais pas nécessairement. Non initialisée signifie pas initialisé. En fonction de ce que l'application que vous utilisez, la mémoire de l'objet est autorisé par exemple contenir un piège ou autre valeur non valide. La différence est que si vous prenez un "hasard" valeur booléenne x (vrai ou faux), alors le résultat de x || !x est garanti vrai par la norme. Si vous prenez un non initialisée valeur booléenne y que la norme ne dit rien sur le résultat de y || !y. Cela pourrait être vrai, faux, ou de provoquer un accident ou de tout autre comportement.
En plus de ce que Steve a dit, une initialisé la variable n'est même pas garanti pour contenir une valeur stable. Jusqu'à ce que vous l'initialiser ou de lui affecter une valeur, la variable peut facilement avoir une instable de la valeur, c'est à dire répété lit permettra d'obtenir une valeur différente à chaque fois.
bonne question, en fait je suis de passage cette structure Objective-C frontale pour une C++ back-end (et l'inverse)

OriginalL'auteur Stephen Blinkhorn | 2010-06-30