संरचना हमें उपयोगकर्ता-परिभाषित डेटा प्रकार बनाने की अनुमति देती है। संरचना सदस्य प्राथमिक डेटा प्रकार या स्थिर रूप से आवंटित मेमोरी की सरणी हो सकती है। जब हम एक संरचना वेरिएबल को दूसरी को असाइन करते हैं तो शैलो कॉपी की जाती है। हालांकि, एक अपवाद है: यदि संरचना सदस्य एक सरणी है तो कंपाइलर स्वचालित रूप से डीप कॉपी करता है।
उदाहरण
#include <stdio.h>
#include <string.h>
typedef struct student {
int roll_num;
char name[128];
} student_t;
void print_struct(student_t *s) {
printf("Roll num: %d, name: %s\n", s->roll_num, s->name);
}
int main() {
student_t s1, s2;
s1.roll_num = 1;
strcpy(s1.name, "tom");
s2 = s1;
// सरणी पर डीप कॉपी होने के कारण s1 की सामग्री प्रभावित नहीं होती
s2.name[0] = 'T';
s2.name[1] = 'O';
s2.name[2] = 'M';
print_struct(&s1);
print_struct(&s2);
return 0;
}
आउटपुट
Roll num: 1, name: tom Roll num: 1, name: TOM