Hello,
Soit le morceau de code suivant :
La sortie est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 struct float3 { float x; float y; float z; } float3 variable; variable.x = 1.5f; variable.y = 5.2f; variable.z = 8.3f; std::cout << &(variable) << std::endl; std::cout << sizeof(float) << std::endl; std::cout << &(variable + sizeof(float)) << std::endl; std::cout << &(variable.x) << std::endl; std::cout << &(variable.y) << std::endl; std::cout << &(variable.z) << std::endl;
Je ne m'explique pas la valeur de la 3ème ligne. Selon moi, elle aurait dû être identique à la 5ème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 0012FE1C 4 0012FF60 0012FE1C 0012FE20 0012FE24
En revanche, si je fais :
J'obtiens la bonne valeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 float* dodo = reinterpret_cast<float*>(&(variable)); dodo++;
Si quelqu'un a une explication... Merci.
Partager