Je ne comprends pas pourquoi la valeur hexadécimale est retournée dans ton char *. Merci de prendre le temps d'écrire en français.
Partons du principe que tu cherches juste à retourner une chaîne et à mettre un 0x devant.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(){
const char *src = "3fff";
unsigned i,n = strlen(src);
char *dst = (char *)calloc(sizeof(char),(n+3));
dst[0] = '0';
dst[1] = 'x';
for(i=0;i<n;++i) dst[i+2] = src[n-1-i];
printf("src = %s\n",src);
printf("dst = %s\n",dst);
free(dst);
return 0;
}
Ce qui donne :
(mando@aldur) (~) $ gcc -W -Wall plop.c
(mando@aldur) (~) $ ./a.out
src = 3fff
dst = 0xfff3
Je sais pas si c'est ce que tu voulais mais en tout cas c'est ce que j'ai compris.
Bonne chance