C | Advanced Pointer | Question 5
Predict the output
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void fun( char ** str_ref)
{
str_ref++;
}
int main()
{
char *str = ( void *) malloc (100* sizeof ( char ));
strcpy (str, "GeeksQuiz" );
fun(&str);
puts (str);
free (str);
return 0;
}
|
(A) GeeksQuiz
(B) eeksQuiz
(C) Garbage Value
(D) Compiler Error
Answer: (A)
Explanation: Note that str_ref is a local variable to fun(). When we do str_ref++, it only changes the local variable str_ref.
We can change str pointer using dereference operator *. For example, the following program prints “eeksQuiz”
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void fun(char** str_ref)
{
(*str_ref)++;
}
int main()
{
char *str = (void *)malloc(100*sizeof(char));
strcpy(str, "GeeksQuiz");
fun(&str);
puts(str);
free(str);
return 0;
}
Quiz of this Question
Last Updated :
28 Jun, 2021
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...