C'est tout simplement impossible.
Si tu déclares deux entiers de type
int, il te parait évident qu'ils seront à deux emplacements différents dans la mémoire et que donc les adresses seront différentes ?
Il n'est donc pas possible qu'un objet
float et qu'un objet
char* aient la même adresse. En revanche, tu peux créer un
pointeur sur float et lui donner comme valeur l'adresse de la chaine :
1 2 3 4 5 6 7 8 9 10
| int main(void)
{
char *chaine = "\x45\x2d\xb6\x32";
float *p_energie = chaine;
printf("'%s' a l'adresse %p\n", chaine, chaine);
printf("'%f' a l'adresse %p\n", *p_energie, p_energie);
return 0;
} |
Rien ne te garantit par contre que l'interprétation des 4 octets de
chaine via le pointeur
p_energie donne un résultat probant.
Partager