🪆
Structures & Unions

Nested Structures

Struct Ke Andar Struct
💡 Nested struct matryoshka dolls jaisa hai — ek struct ke andar doosra struct, jaise ek "Employee" struct ke andar ek "Address" struct chhupa ho sakta hai.

Ek struct ka member khud bhi ek struct type ka ho sakta hai — jaise Employee struct mein ek Address struct nested ho, taaki related data logically group ho (street, city, pincode sab ek Address ke andar).

Access karne ke liye multiple dots chain karte hain: emp.address.city — pehle outer struct ka member, phir uske andar wale struct ka member.

struct Address {
  char city[30];
  int pincode;
};

struct Employee {
  char name[50];
  struct Address addr;   // nested struct
};

int main() {
  struct Employee e1 = {"Riya", {"Mumbai", 400001}};

  printf("%s lives in %s\n", e1.name, e1.addr.city);
  printf("Pincode: %d\n", e1.addr.pincode);
  return 0;
}
🪆
Nested struct matryoshka dolls jaisa hai — ek struct ke andar doosra struct, jaise ek "Employee" struct ke andar ek "Address" struct chhupa ho sakta hai.
1 / 2
⚡ Quick Recap
  • Struct ka member khud bhi struct type ka ho sakta hai
  • Chained dots se access karo: outer.inner.field
  • Related data ko logically group karne ke liye useful
Is page mein (1 subtopics)

Struct ke andar struct ke andar struct — 2-3 levels tak theek hai, lekin bahut deep nesting (4+ levels) code ko padhna mushkil bana deta hai. Real-world code mein usually 2 levels tak hi rehte hain.

struct Point { int x, y; };
struct Rectangle { struct Point topLeft, bottomRight; };
struct Window { struct Rectangle bounds; char title[50]; };

int main() {
  struct Window w = {{{0, 0}, {800, 600}}, "My App"};
  printf("%d\n", w.bounds.topLeft.x);  // 0 — 3 levels deep
  return 0;
}
💡Tip: Bahut deep nesting dekho to consider karo ki kya wo relationship simplify ho sakti hai — jaise helper functions banake nested access ko chhupana.