Consider the following C declaration Cstruct { short s[5]; union { float y;…

2015

Consider the following C declaration 

C
struct 
{
    short s[5];
    union 
    {
        float y;
        long z;
    }
    u;
}t;


Assume that the objects of the type short, float and long occupy 2 bytes, 4 bytes and 8 bytes, respectively. The memory requirement for variable t, ignoring alignment consideration, is

Answer: B. 18 bytesThe struct contains an array of five shorts (5 × 2 bytes = 10 bytes). The union member holds either a float (4 bytes) or a long (8 bytes), so the union size…

  1. A.

    22 bytes

  2. B.

    18 bytes

  3. C.

    14 bytes

  4. D.

    10 bytes

Attempted by 555 students.

Show answer & explanation

Correct answer: B

The struct contains an array of five shorts (5 × 2 bytes = 10 bytes). The union member holds either a float (4 bytes) or a long (8 bytes), so the union size is determined by its largest member, which is 8 bytes. Ignoring alignment considerations as instructed, the total memory requirement is simply the sum of these parts: 10 bytes plus 8 bytes equals 18 bytes.

Explore the full course: Iocl Engineers Officers Grade A Paper 2

Loading lesson…