Predecir la salida del siguiente programa
#include<stdio.h> int main() { int a = 12; void *ptr = (int *)&a; printf("%d", *ptr); getchar(); return 0; }
(A) 12
(B) Error del compilador
(C) Error de tiempo de ejecución
(D) 0
Respuesta: (B)
Explicación: Hay un error del compilador en la línea «printf(«%d», *ptr);».
Los punteros de tipo void * no se pueden desreferenciar. Debemos escribirlos antes de desreferenciarlos.
El siguiente programa funciona bien e imprime 12.
#include<stdio.h> int main() { int a = 12; void *ptr = (int *)&a; printf("%d", *(int *)ptr); getchar(); return 0; }
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA