Cuestionario C – 111 | Pregunta 1

Elija la mejor afirmación para el siguiente fragmento de programa:

#include <stdio.h>
  
int main()
{
 int var;  /*Suppose address of var is 2000 */
  
 void *ptr = &var;
 *ptr = 5;
 printf("var=%d and *ptr=%d",var,*ptr);
               
 return 0;
}

(A) Imprimirá “var=5 y *ptr=2000”
(B) Imprimirá “var=5 y *ptr=5”
(C) Imprimirá “var=5 y *ptr=XYZ” donde XYZ es una dirección aleatoria
(D) Error de compilación

Respuesta: (D)
Explicación: el punto clave en el fragmento anterior es la desreferenciación del puntero vacío. Cabe señalar que no se permite la desreferenciación del puntero void porque void es un tipo de datos incompleto. La forma correcta de asignar el valor de 5 sería primero encasillar el puntero vacío y luego usarlo. Entonces, en lugar de *ptr , se debe usar *(int *)ptr . La respuesta correcta es D.
Cuestionario de esta pregunta

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *