Ciao a tutti,
Sto tentando di fare un semplice programmino in C, dove dato un certo numero di unsigned char, con 4 di loro si crei una variabil float per poi stamparla a video.
Insomma ho 4 byte in un array e li vogli leggere come una variabile float (mi servirà per leggere un dato in una porta).
Il problema è che devo aver incasinato un po i puntatori, perchè il risultato cambia ogni volta che lancio il programma. 
Ci ho sbattuto un bel po la testa, ma non riesco a trovare l'intoppo.
Qualcuno sarebbe coì gentile da volermi aiutare?
Grazie anticipatamente per l'aiuto!
codice:
#include <stdio.h>
#include <stdlib.h>
#define _SPACE printf("\n");
typedef unsigned char BYTE;
float *retiflo(char *pun){
unsigned char four[4];
float *ff;
four[0] = pun[4];
four[1] = pun[3];
four[2] = pun[2];
four[3] = pun[1];
ff = (float *)&four;
return ff;
}
int main()
{
BYTE arr[8] = {0x00, 0x06, 0xd0, 0x9c, 0x1e, 0x3e, 0x10, 0x00};
float *fl;
int i;
char *pc;
for(i = 0; i < 7; i++){
printf("%04x ",arr[i]);
}
pc = &arr;
_SPACE
fl = retiflo(pc);
printf("%12.6f", fl);
_SPACE
return 0;
}