Zastanawiam się czy przypadkiem wydrukowana wartość a; nie powinna wynosić 12.25, a jeśli tak to dlaczego otrzymuję wynik 3.11573e+033?
float a;
char * b = (char *) & a;
* b = 12.25;
cout << a ;
...dodam, że dla różnych typów jak i wartości zmiennych - czasami ten kod zachowuje się poprawnie (czyli to co przypisałem *b drukuje się wyjściu cout-a)