Cuestionario C – 101 | Pregunta 3

#include "stdlib.h"
int main()
{
 int *pInt;
 int **ppInt1;
 int **ppInt2;
  
 pInt = (int*)malloc(sizeof(int));
 ppInt1 = (int**)malloc(10*sizeof(int*));
 ppInt2 = (int**)malloc(10*sizeof(int*));
  
 free(pInt);
 free(ppInt1);
 free(*ppInt2);
 return 0;
}

Elija la declaración correcta escrita arriba del programa C.
(A) malloc() para ppInt1 y ppInt2 no es correcto. Dará un error de tiempo de compilación.
(B) free(*ppInt2) no es correcto. Dará un error de tiempo de compilación.
(C) free(*ppInt2) no es correcto. Dará error de tiempo de ejecución.
(D) No hay problema con malloc() y free(), es decir, no hay error de tiempo de compilación/ejecución.

Respuesta: (D)
Explicación: ppInt2 es puntero a puntero a int. *ppInt2 es un puntero a int. Siempre que el argumento de free() sea un puntero, no hay problema. Es por eso que B) y C) no son correctos. La asignación de ppInt1 y ppInt2 está bien según su tipo de datos. Entonces A) tampoco es correcto. La afirmación 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 *