C Programming - Pointers - Discussion
Discussion Forum : Pointers - True / False Questions (Q.No. 3)
3.
The following program reports an error on compilation.
#include<stdio.h>
int main()
{
float i=10, *j;
void *k;
k=&i;
j=k;
printf("%f\n", *j);
return 0;
}
Answer: Option
Explanation:
This program will NOT report any error. (Tested in Turbo C under DOS and GCC under Linux)
The output: 10.000000
The output: 10.000000
Discussion:
23 comments Page 1 of 3.
Pruthvi said:
1 decade ago
In turbo c it is an error. And it is not the correct way to assign a void pointer.
Vivek said:
1 decade ago
This is right program. No error will be there.
Kranthi said:
1 decade ago
No, Its an error. How come you declare a variable with Void prototype. Void means nothing.
Kunal Bansal said:
1 decade ago
I have personally run this program on DEV C++ 4.9.9.2 and it was giving error in line j=k; statement
After type casting it , it is giving the value 10.000000
So this is compiler dependent
After type casting it , it is giving the value 10.000000
So this is compiler dependent
Kunal Bansal said:
1 decade ago
@kranthi this is an valid prototype
error is because of different thing , read my previous comment
error is because of different thing , read my previous comment
Ankit said:
1 decade ago
But before assigning the void pointer we must typecast it. Right ?
Kiran ware said:
1 decade ago
Yes, before assigning the void pointer we must typecast it.
Shabana said:
1 decade ago
Yes its correct because void is nothing we cannot assign like that.
Abi said:
1 decade ago
Hi,
Can you explain then why do we need to typecast a void pointer?
Can you explain then why do we need to typecast a void pointer?
Harshu smart boy said:
1 decade ago
What is possible error?
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers