C Programming - Complicated Declarations - Discussion

Discussion Forum : Complicated Declarations - Find Output of Program (Q.No. 1)
1.
What will be the output of the program?
#include<stdio.h>

int main()
{
    char far *near *ptr1;
    char far *far *ptr2;
    char far *huge *ptr3;
    printf("%d, %d, %d\n", sizeof(ptr1), sizeof(ptr2), sizeof(ptr3));
    return 0;
}
4, 4, 8
4, 4, 4
2, 4, 4
2, 4, 8
Answer: Option
Explanation:
No answer description is available. Let's discuss.
Discussion:
31 comments Page 1 of 4.

Sathish said:   1 decade ago
Any body please give what's the difference between these three declarations.

Hari said:   1 decade ago
Near ptr has a memory of 2bytes. Far and huge ptr hav a memory of 4 bytes. Hence the output is 2, 4, 4.

Nishu said:   1 decade ago
Thanks hari.

Prasad said:   1 decade ago
Can anybody provide me link to know about these near and far pointers?

Yasir said:   1 decade ago
Thanks dude.

Badhusa said:   1 decade ago
Thanks ma.

Subash said:   1 decade ago
Will any body give me the full bytes details of these type of declarations. ?

Shashidhar said:   1 decade ago
Can any one say me the difference between these three pointers?

Sakshi chopra said:   1 decade ago
Near pointers-refer to current segment $ point to 64kbytes, occupy 2bytes.

Far pointer-refer to data segment $ points to gigabyte, occupy 4 byte.

Huge pointer-similar to far pointers, but work slowpy, occupy 4 byte.

Seshan said:   1 decade ago
Thanks for your message sakshi chopra.


Post your comments here:

Your comments will be displayed after verification.