grazie. giusto per vedere se ho capito come lavora la funzione..la commento:
a cosa serve azzerare il puntatore d?codice:int main() { char s[] = "Essere o non essere"; char x[100]; char *p=s; // Assegna al puntatore l'indirizzo iniziale dell'area di memoria di s char *d=x; // Stessa cosa.... while(*p) { sprintf(d, "%02X", *p++); // Copia nell'array x, il valore hex di s[0] d+=2; // vengono occupati 2 byte, quindi si sposta di 2 il puntatore nell'array x } *d=0; printf("%s\n", x); return 0; }