#include <stdio.h> char *fun() { static char arr[1024]; return arr; } int main() { char *str = "geeksforgeeks"; strcpy(fun(), str); str = fun(); strcpy(str, "geeksquiz"); printf("%s", fun()); return 0; }
(A) geeksforgeeks
(B) geeksquiz
(C) geeksforgeeks geeksquiz
(D)
Respuesta de error del compilador : (B)
Explicación: tenga en cuenta que arr[] es estático en fun(), por lo que no hay problemas con la dirección de retorno, arr[] permanecerá allí incluso después de que fun() regrese y todas las llamadas a fun() compartan el mismo arr[].
strcpy(fun(), str); // Copies "geeksforgeeks" to arr[] str = fun(); // Assigns address of arr to str strcpy(str, "geeksquiz"); // copies geeksquiz to str which is address of arr[] printf("%s", fun()); // prints "geeksquiz"
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