Bonjour,
j'ai beau chercher je ne trouve pas comment faire, voici mon codeA la dernière ligne j'obtiens l'erreur : no match for 'operator='Code:
1
2
3
4
5
6
7
8 struct face { int* v1, v2, v3; } face faceList; faceList = {&var1, &var2, &var3};
Version imprimable
Bonjour,
j'ai beau chercher je ne trouve pas comment faire, voici mon codeA la dernière ligne j'obtiens l'erreur : no match for 'operator='Code:
1
2
3
4
5
6
7
8 struct face { int* v1, v2, v3; } face faceList; faceList = {&var1, &var2, &var3};
Bonjour,
Ta définition indique un seul pointeur et 2 valeurs entière. Pour initialiser 3 pointeurs :
Code:
1
2
3
4
5
6
7 struct face { int* v1, *v2, *v3; }; face faceList1{ &var1, &var2, &var3 }; face faceList2 = { &var1, &var2, &var3 }; faceList1 = face{ &var1, &var2, &var3 };
Merci d'avoir répondu aussi vite.
J'ai apporté toutes les modifications mais j'ai eu exactement la même erreur, je ne sais pas si ça change quelque chose mais var1, var 2 et var3 sont des structures également mais différentes de 'face'. Quand je remplace ces trois valeurs d'initialisation par des 0 plus d'erreur...
Face contient des pointeurs sur int, donc normal que tu ne puisses pas y mettre des pointeurs sur des structures.
Cela fait 8 ans que 0 ne devrait plus être utilisé pour initialiser un pointeur. D'ailleurs, la plupart des compilateurs bien configurés émettent un avertissement « Zéro comme constante de pointeur nul ». C'est à dire qu'il faut utiliser nullptr.Citation:
Quand je remplace ces trois valeurs d'initialisation par des 0 plus d'erreur...
Note: ne déclare pas les variables sur une seule ligne, comme tu as pu le constater, c'est assez facile de se rater sur l'intention.