Есть такая программка: #include <cstdio> int main(int argc, char **argv) { char s[] = { 1, 1, 1, 77, 135, 29, 67 }; int offset = 3; float d_value = *(float *)(s+offset); printf("%f\n", d_value); return 0; } /*****************************/ Компилирую на свой машине: # g++ -O2 -o test test.cpp # ./test 157.528519 С компилятором что 4.1.2 что 3.4.6 работает нормально. Теперь кросскомпилирую для ARM (atmel rm9200, little endian, кросскомпилятор gcc-3.4.3): # arm-linux-g++ -O2 -o test test.cpp На приборе через терминал запускаю: # ./test 0.000000 ************************************************ Почему во втором случае получается 0.0 ? Спасибо.