Witam
Zacząłem ostatnio kombinować troche z reinterp_cast i powstał oto taki program:
#include<iostream>
using namespace std;
struct tablica_20 {
int tab[10];
};
struct tablica_20_f {
float tab[10];
};
int main() {
tablica_20 a;
tablica_20_f *b = reinterpret_cast<tablica_20_f *>(&a);
cout << sizeof(a) << " " << sizeof(*b) << endl;
for(int i=0; i<10; i++) {
b->tab[i] = i+1;
}
for(int j=0; j<10; j++) {
cout << "J: " << a.tab[j] << endl;
}
return 0;
}
Chciałem nadpisać wartości 'a' przez 'b'. I tu pojawia się problem, o ile dam w tablica_20_f int wszystko działa, a jak jest float to mam dziwne wyniki:
J: 1065353216
J: 1073741824
J: 1077936128
J: 1082130432
......
Skąd się to bierze?