C | Pointer Basics | Question 14
Predict the output of following program
#include<stdio.h>
int main()
{
int a = 12;
void *ptr = ( int *)&a;
printf ( "%d" , *ptr);
getchar ();
return 0;
}
|
(A) 12
(B) Compiler Error
(C) Runt Time Error
(D) 0
Answer: (B)
Explanation: There is compiler error in line “printf(“%d”, *ptr);”.
void * type pointers cannot be de-referenced. We must type cast them before de-referencing.
The following program works fine and prints 12.
#include<stdio.h>
int main()
{
int a = 12;
void *ptr = (int *)&a;
printf("%d", *(int *)ptr);
getchar();
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...