GATE CSE
First time here? Checkout the FAQ!
x
+2 votes
136 views
#include

int main()

{

char *x;

x = (char *) &a;

a = 512;

x[0] = 1;

x[1] = 2;

printf("%d\n",a);

return 0;

}

What is the output of above program?

(a) Machine dependent

b) 513

(c) 258

(d) Compiler Error
asked in Programming by Veteran (14.8k points) 15 152 317 | 136 views
Obvio it will be compilation error , you are using undeclared a
............................

1 Answer

+1 vote

Assuming a is declared first.

  • In a system that uses little-endian (Like  Intel x86 processors ) the answer should be $513$
  • In a system that uses big-endian (Like IBM z/Architecture mainframes ) the answer should be a very large value.

 Answer should be (a) Machine dependent

answered by Veteran (56.9k points) 36 193 500
debashish,how do u know that it is endian notation??
and if  'a' is a int variable then how will x[0] and x[1] work??

i mean a is an integer type variable,so what will be x[0] or x[1] refer to??

@Akriti

A prerequisite to know what is happening http://gateoverflow.in/4273/char-pointer-to-access-an-int

thanks @kapil..


Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true
Top Users Oct 2017
  1. Arjun

    23678 Points

  2. Bikram

    17268 Points

  3. Habibkhan

    8950 Points

  4. srestha

    6446 Points

  5. Debashish Deka

    5478 Points

  6. jothee

    5128 Points

  7. Sachin Mittal 1

    4882 Points

  8. joshi_nitish

    4486 Points

  9. sushmita

    4032 Points

  10. Rishi yadav

    3974 Points


Recent Badges

Popular Question Hira Thakur
Notable Question amaity
Notable Question srestha
Nice Answer Madhab
Renewal Madhab
Popular Question sourabh
Notable Question K ANKITH KUMAR
Great Answer saloni
Resurrection saloni
Great Question Ishrat Jahan
27,406 questions
35,255 answers
84,502 comments
33,454 users