स्ट्रक्चर का एड्रेस पास करना
- स्ट्रक्चर का एड्रेस फंक्शन कॉल में आर्गुमेंट के रूप में पास किया जाता है।
- फंक्शन हेडर में पॉइंटर टू स्ट्रक्चर में रिसीव होता है।
लाभ
- मेमोरी की बचत: कॉपी बनाने की आवश्यकता नहीं।
- मान वापस करने की आवश्यकता नहीं: फंक्शन इनडायरेक्टली पूरे स्ट्रक्चर को एक्सेस और मॉडिफाई कर सकता है।
प्रोग्राम उदाहरण
#include <stdio.h>
struct date {
int day;
int mon;
int yr;
};
void display(struct date *dt);
int main() {
struct date d = {02, 01, 2010};
display(&d);
return 0;
}
void display(struct date *dt) {
printf("Day = %d\n", dt->day);
printf("Month = %d\n", dt->mon);
printf("Year = %d\n", dt->yr);
}
आउटपुट
Day = 2
Month = 1
Year = 2010
मुख्य बिंदु
&d से स्ट्रक्चर का एड्रेस पास होता है।
- फंक्शन पैरामीटर
struct date *dt पॉइंटर टू स्ट्रक्चर है।
dt->member से मेंबर्स एक्सेस/मॉडिफाई होते हैं।
- यह कॉल बाय रेफरेंस के समान है।