Attend ... Ce n'est pas un type cast qu'il te faut, là ...
A ta place, je passerais plutôt par un sprintf ...
Là, ce que tu fais, c'est que tu lui dis que ton char * pointe sur la pseudo adresse contenue dans ton int ... Donc forcément, ca marche à la compilation, mais à l'exec, ton pointeur n'est pas du tout au bon endroit ...
Code :
- char toto[30];
- int ip_proto=1234;
- snprintf(toto, 30, "%d", ip_proto);
- toto[29]=0;
|
là, ca te convertit ton int en chaine de caractères ... MAis si c'est une adresse ip (c'est ce à quoi me fait penser ip_proto)
la décomposition en 4 char se ferait plutôt comme ca :
Code :
- int ip_proto=1234;
- char *toto = (char *)&ip_proto;
|
sinon, tu peux toujours utiliser un passage par des structs (qui parait quand même un peu plus propre)
Code :
- union add_ip {
- int add_totale;
- struct add_chars {
- char d, c, b, a; // L'ordre des variables est important ...
- };
- };
|
voilà voilà ...
---------------
last.fm