Io ho una variabile puntatore di tipo void che può puntare a variabili di vari tipi (compresi array di char, ovvero stringhe)
A me serve da codice capire a quale tipo di variabile punta il puntatore (uno specie di gettype del .net) per poi trattarlo di conseguenza (devo semplicemente assegnare un valore/stringa alla variabile a cui punta il puntatore)

Se ho:
void *p;

e p punta ad un int/char/float per assegnarlo mi basta fare

p = &variabile;
*p = (int)val;

ma se p punta a una stringa char[] dovrò scrivere questo

p = variabile
strcpy(p, val);