Bonjour,
Petite question sur l'initialisation d'une table, n'ayant pas de K&R (si quelqu'un a une adresse pour une version online au passage), j'ai pu trouver plusieurs réponses se contredisant sur le net.
Soit une init d'une table:
La table de x sera mise a 0 totalement, pour y, seulement la premiere case a 1 puis les autres a 0.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 int x[10] = {0}; int y[10] = {1}
J'ai pu lire ici et la qu'une init uniforme et totale d'une table n'était possible qu'avec null. Puis ds la faq:
C'est a dire qu'en initialisant avec int t[10] = {x}, seulement la premiere valeur prendra x et les autres null, donc en mettant x a null on peut avoir toute la table a null.'int t[10] = {10, 20};' crée un tableau de 10 éléments initialisé avec les valeurs t[0] = 10, t[1] = 20 et t[2] à t[9] = 0. Notez bien que la mise à 0 des éléments non initialisés d'une variable locale tableau n'a lieu que lorsqu'un élément au moins a été initialisé.
Qu'en dit le standard ? Est ce indépendant du compilateur ?
Merci d'avance,
C'est pas une question super importante mais juste pour clarifier ce petit point face a ce que dit le standard.
Partager