Question

Je me demandais si quelqu'un pourrait repérer ce qui ne va pas avec ma déclaration de structure et mon utilisation. Pour le moment, j'ai une structure et je souhaite stocker le tableau float en tant que membre.

Mon code:

struct Player{
float x[12];
float y[12];
float red,green,blue;
float r_leg, l_leg;
int poly[3];
bool up,down;
};

J'ai ensuite essayé de remplir la structure:

float xcords[12] = {1,1,1,1,1,1,1,1,1,1,1,1 };
float ycords[12] = {1,1,1,1,1,1,1,1,1,1,1,1 };
Player player = {xcords,ycords,1,1,1,2,2,true,true};

Erreur:

1>.\template_with_console.cpp(35) : error C2440: 'initializing' : cannot convert from 'float [12]' to 'float'
1>        There is no context in which this conversion is possible
1>.\template_with_console.cpp(35) : error C2440: 'initializing' : cannot convert from 'float [12]' to 'float'
1>        There is no context in which this conversion is possible
Était-ce utile?

La solution

Les tableaux se désintègrent en pointeur vers le premier élément du tableau, comme c'est le cas avec xcords et ycords . Vous ne pouvez pas initialiser la structure comme ceci. Donc, vous devez initialiser les membres explicitement:

Player player = {
        {1,1,1,1,1,1,1,1,1,1,1,1 }, // xcords
        {1,1,1,1,1,1,1,1,1,1,1,1 }, // ycords
        1,1,1,                      // red, green, blue
        2,2,                        // right, left
        {0,1,2},                    // poly[3]   -- missing?          
        true,true};                 // up, down

Il vous manque également des initialiseurs pour poly [3] si je comprends bien. Mettez dans les valeurs appropriées. Sinon, il y aura une initialisation par défaut - est-ce ce que vous voulez?

Autres conseils

Essayez

Player player = {{1,1,1,1,1,1,1,1,1,1,1,1 },
                 {1,1,1,1,1,1,1,1,1,1,1,1 },
                 1,1,1,
                 2,2,
                 {},
                 true,true};

Je pense que vous vous attendez à ce que l'initialisation copie les éléments de chaque tableau dans votre structure. Essayez d’initialiser les éléments de tableau de votre structure individuellement, avec une boucle pour .

Il n'y a pas de "constructeur" pour un tableau float qui copiera les éléments d'un autre tableau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top