Je serais tenté de virer les références et tester avec des pointeurs dans la structure de commande
Je pense que ça vient de la.
EDIT: la nuit portant conseil, j'ai trouvé où je vous ai "enduit d'erreur"...
Lorsqu'on crée la structure contenant la référence on lui dit que son espace de stockage est celui de la case 0 des volets...
struct t_commandeWeb {
bool active;
t_volet& volet; // la référence du volet à commander
t_commandeVolet actionDemandee;
void affecte(bool a, t_volet& v, t_commandeVolet c)
{
active=a;
volet=v;
actionDemandee=c;
}
};
t_commandeWeb commandeWeb = {false, lesVolets[0], ARRETER};
donc ensuite quand on copie des choses dedans on modifie en fait lesVolets[0]
comparer alors les références par leur adresse n'a plus de sens si on instancie un espace de stockage particulier.
==> Pour aller au plus simple, passez par les pointeurs, cf mon explication au post 231