Skip to main content

← Back to C Course Foundations

Structure and Union (C)

Learning Objectives

  • Define and initialize structures and unions.
  • Access members correctly.
  • Explain memory difference between structure and union.

Concept

  • struct: each member gets separate memory.
  • union: all members share the same memory block.

C Example

#include <stdio.h>
#include <string.h>

typedef struct {
int id;
char name[20];
float marks;
} Student;

typedef union {
int i;
float f;
char ch;
} Data;

int main(void) {
Student s1 = {101, "Riya", 89.5f};
printf("Student -> id=%d name=%s marks=%.1f\n", s1.id, s1.name, s1.marks);

Data d;
d.i = 65;
printf("Union as int: %d\n", d.i);
d.f = 10.5f;
printf("Union as float: %.2f\n", d.f);

printf("Size of Student: %lu\n", sizeof(Student));
printf("Size of Data union: %lu\n", sizeof(Data));
return 0;
}

Dry Run Insight

  • Student retains all fields simultaneously.
  • In union Data, writing d.f overwrites previously stored d.i.

Common Mistakes

  • Expecting union members to hold independent values.
  • Forgetting . operator for structure member access.
  • Missing typedef consistency.

Practice

  1. Create Employee structure.
  2. Create union for sensor value (int or float).
  3. Compare memory sizes of both.

📍 Visit Us

🏫 VD Computer Tuition Surat

VD Computer Tuition
📍 Address
2/66 Faram Street, Rustompura
Surat395002, Gujarat, India
📞 Phone / WhatsApp
+91 84604 41384
🌐 Website

Computer Classes & Tuition — Areas We Serve in Surat

AdajanAlthanAmroliAthwaAthwalinesBhagalBhatarBhestanCanal RoadChowkCitylightDumasGaurav PathGhod Dod RoadHaziraJahangirpuraKamrejKapodraKatargamLimbayatMagdallaMajura GateMota VarachhaNanpuraNew CitylightOlpadPalPandesaraParle PointPiplodPunaRanderRing RoadRustampuraSachinSalabatpuraSarthanaSosyo CircleUdhnaVarachhaVed RoadVesuVIP Road
📞 Call Sir💬 WhatsApp Sir