-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstructest.c
105 lines (97 loc) · 2.72 KB
/
structest.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/*
구조체 포인터
Q1 and Q2
*/
#include <stdio.h>
void flushinput(void);
struct DD
{
int f,g;
};
struct test
{
int a, b;
// https://stackoverflow.com/questions/6287479/how-to-use-a-struct-inside-another-struct
struct CC{
int d,e;
};
// CC와 DD는 vscode extension에서 에러로 나옴 (identifier is undefined) 하지만 컴파일은 잘됨
CC test2;
DD test3;
struct EE{
int h,i;
}test4;
struct DD test5;
struct CC test6;
};
int main()
{
struct test asdf;
struct test *ptr;
// char keypressed;
ptr = &asdf;
while (1)
{
(*ptr).a = 5;
(*ptr).b = 6;
(*ptr).test2.d = 7;
(*ptr).test2.e = 8;
(*ptr).test3.f = 9;
(*ptr).test3.g = 10;
(*ptr).test4.h = 11;
(*ptr).test4.i = 12;
(*ptr).test5.f = 13;
(*ptr).test5.g = 14;
(*ptr).test6.d = 15;
(*ptr).test6.e = 16;
printf("asdf 의 a멤버 : %d\n", asdf.a);
printf("asdf 의 b멤버 : %d\n", asdf.b);
printf("asdf 의 C struct인 test2의 d : %d\n", asdf.test2.d);
printf("asdf 의 C struct인 test2의 e : %d\n", asdf.test2.e);
printf("asdf 의 D struct인 test3의 f : %d\n", asdf.test3.f);
printf("asdf 의 D struct인 test3의 g : %d\n", asdf.test3.g);
printf("asdf 의 E struct인 test4의 h : %d\n", asdf.test4.h);
printf("asdf 의 E struct인 test4의 i : %d\n", asdf.test4.i);
printf("asdf 의 D struct인 test5의 f : %d\n", asdf.test5.f);
printf("asdf 의 D struct인 test5의 g : %d\n", asdf.test5.g);
printf("asdf 의 C struct인 test6의 d : %d\n", asdf.test6.d);
printf("asdf 의 C struct인 test6의 e : %d\n", asdf.test6.e);
// press enter to continue
while (getchar() != '\n');
ptr->a = 11;
ptr->b = 12;
ptr->test2.d = 13;
ptr->test2.e = 14;
ptr->test3.f = 15;
ptr->test3.g = 16;
ptr->test4.h = 17;
ptr->test4.i = 18;
ptr->test5.f = 19;
ptr->test5.g = 20;
ptr->test6.d = 21;
ptr->test6.e = 22;
printf("asdf 의 a멤버 : %d\n", asdf.a);
printf("asdf 의 b멤버 : %d\n", asdf.b);
printf("asdf 의 C struct인 test2의 d : %d\n", asdf.test2.d);
printf("asdf 의 C struct인 test2의 e : %d\n", asdf.test2.e);
printf("asdf 의 D struct인 test3의 f : %d\n", asdf.test3.f);
printf("asdf 의 D struct인 test3의 g : %d\n", asdf.test3.g);
printf("asdf 의 E struct인 test4의 h : %d\n", asdf.test4.h);
printf("asdf 의 E struct인 test4의 i : %d\n", asdf.test4.i);
printf("asdf 의 D struct인 test5의 f : %d\n", asdf.test5.f);
printf("asdf 의 D struct인 test5의 g : %d\n", asdf.test5.g);
printf("asdf 의 C struct인 test6의 d : %d\n", asdf.test6.d);
printf("asdf 의 C struct인 test6의 e : %d\n", asdf.test6.e);
// press enter to continue
while (getchar() != '\n');
}
return 0;
}
void flushinput(void)
{
int a;
do
{
a = getchar();
} while (a != '\n' && a != EOF);
}