Hola!:)
Tengo que hacer un programa que al pasarle un apuntador void* pueda saber si es entero (int), de punto flotante (double), un caracter (char) o una cadena (char[]).
void miFuncion(void* apuntador);
Lo unico que se me ocurrio fue usar
sizeof para saber el tamaño de memoria que ocupa el dato ya que se lo siguiente:
int --> 4 bytes
double--> 8 bytes
char --> 1 byte
char[15]--> 15 bytes
Pero si ejecuto el siguiente codigo no me arroja los resultados que espero.
Código C:
Ver originalint main(){
int n = 1;
double d = 999999999999;
char c = '3';
char cadena[15] = "cadena";
void* p = &n;
void* p2 = &d;
void* p3 = &c;
void* p4 = &cadena;
printf("n = %d \n", sizeof(*p
)); printf("d = %d \n", sizeof(d
)); // si ponemos *p2 regresa 4 ¿porque? printf("c = %d \n", sizeof(*p3
)); printf("c = %d \n", sizeof(*p4
)); // esto me deberia de regrasar 15 (15 bytes) }
Saludos!