# स्ट्रक्चर्स के ऐरे — C Programming Fundamentals: Pointers, Memory और Files

Source: https://www.skillbyai.com/hi/c/c-array-of-structs

> Structs के arrays से table rows जैसे records model करें, और struct pointers के साथ arrow operator उपयोग करें।

## छात्रों की एक टेबल

समान आकार के कई रिकॉर्ड स्टोर करने के लिए स्ट्रक्चर को ऐरे के साथ जोड़ें।

```c
struct Student {
    char name[20];
    int marks;
};

struct Student class[3] = {
    {"Ana", 88},
    {"Bilal", 76},
    {"Chen", 92}
};

for (int i = 0; i < 3; i++) {
    printf("%s: %d\n", class[i].name, class[i].marks);
}
```

Output:

```
Ana: 88
Bilal: 76
Chen: 92
```

## कॉपी से बचने के लिए pointer से पास करें

बड़े स्ट्रक्चर (या स्ट्रक्चर के ऐरे) को value से पास करने पर हर बाइट कॉपी होता है। इसकी बजाय फंक्शन को pointer (`struct Student *s`) पास करें, और मेंबर एक्सेस के लिए `s->field` उपयोग करें।

**Quiz:** जब `s` किसी स्ट्रक्चर का pointer हो, तो `s->field` का क्या मतलब है?

- [x] (*s).field का संक्षिप्त रूप
- [ ] यह s और field की तुलना करता है
- [ ] यह नया स्ट्रक्चर बनाता है
- [ ] एक pointer declare करता है

*Answer:* (*s).field का संक्षिप्त रूप. `->` एक ही चरण में pointer को डीरेफ़रेंस करता है और मेंबर एक्सेस करता है।
