trop d'initialiseurs de 'int [0]' c++

Première:

int k[] ={1,2,3,4,5};

Deuxième:

struct slk
{
    int k[] ={1,2,3,4,5};
};

pour ces deux états, pourquoi le premier col de la compilation, mais la deuxième me donner

erreur:trop de initialiseurs de 'int [0]'. la compilation se serait passé si je l'ai mis k[5];

Que ce message d'erreur signifie? Remarque: le code testé sur GNU version de GCC 4.7.2

  • Inline initialisation pour les membres est d'un tout autre jeu de balle. Prendre l'équivalent direct de votre premier échantillon, vous êtes censé pour initialiser les membres dans une liste d'initialisation de membre (si il y a un nombre limité de cas où vous pouvez le faire inline comme vous l'avez fait dans votre deuxième échantillon).
  • Il semble fonctionner avec int k[5] = {1,2,3,4,5}; mais je ne peux pas expliquer pourquoi.
  • C'est plus un "il doit avoir une taille à le faire dans une classe de chose". IIRC, le standard a une règle explicite.
InformationsquelleAutor cppython | 2014-01-16