#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) Compiler Error
Answer: (B)
Explanation: Note that arr[] is static in fun() so no problems of returning address, arr[] will stay there even after the fun() returns and all calls to fun() share the same 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"
Quiz of this Question
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
28 Jun, 2021
Like Article
Save Article