Haga coincidir las siguientes Lista-I y Lista-II:
Lista-I | Lista-II |
---|---|
P. Fuga de memoria | 1.
#include |
P. Puntero colgante | 2.
char* func() { char str[10]; strcpy(str,"Hello!"); return(str); } |
R. Desbordamiento de pila | 3.
#include < stdlib.h > void f() { int * ptr = (int * ) malloc(sizeof(int)); /* Do some work */ return; } |
S. Puntero salvaje | 4.
int main() { int *p; int a = 10; p = &a; *p = 12; } |
(A)
P-1, Q-4, R-3, S-2
(B)
P-1, Q-2, R-3, S-4
(C)
P-3, Q-4, R-1, S-2
(D)
P-3, Q-2, R-1, S-4
Responder:
(D)
Explicación:
Pérdida de memoria
ocurre cuando los programadores crean una memoria en el montón y se olvidan de borrarla.
Un puntero que apunta a una ubicación de memoria que se ha eliminado (o liberado) se denomina puntero colgante .
Si la función se llama recursivamente a sí misma infinitas veces, la pila no puede almacenar una gran cantidad de variables locales utilizadas por cada llamada de función y dará como resultado un desbordamiento de la pila .
Un puntero que no se ha inicializado en nada (ni siquiera en NULL) se conoce como puntero salvaje . El puntero puede inicializarse en un valor de basura no NULL que puede no ser una dirección válida.
Por lo tanto, P – 3, Q – 2, R – 1, S – 4.
La opción (D) es correcta.
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