५✍
11.6 본문
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 | #include "pch.h" #include <iostream> struct APPLE { //short a; //long b[10]; //char c; long color; }; struct BANANA { //short a; //long b[10]; //char c; APPLE apple; }; struct ORANGE { //short a; //long b[10]; //char c; BANANA banana; //다른 구조체의 선언이 가능하다 }; int main(void) { ORANGE orange; orange.banana.apple.color = 10; //orange.banana.apple = 10; //type에 맞게 줘야 한다. printf("%d\n", orange.banana.apple.color); //값 printf("%d\n", &orange.banana.apple.color); //주소 } | cs |
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 | #include "pch.h" #include <iostream> struct APPLE { long *color; }; struct BANANA { APPLE *apple; }; struct ORANGE { BANANA *banana; }; int main(void) { ORANGE *orange; orange = new ORANGE; orange->banana = new BANANA; orange->banana->apple = new APPLE; orange->banana->apple->color = new long[3]; orange->banana->apple->color[0] = 10; orange->banana->apple->color[1] = 20; orange->banana->apple->color[2] = 30; printf("%d %d\n", orange->banana->apple->color[0], &orange->banana->apple->color[0]); printf("%d %d\n", orange->banana->apple->color[1], &orange->banana->apple->color[1]); printf("%d %d\n", orange->banana->apple->color[2], &orange->banana->apple->color[2]); delete[] orange->banana->apple->color; delete orange->banana->apple; delete orange->banana; delete orange; } | cs |
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 | #include "pch.h" #include <iostream> struct APPLE { long *color; }; struct BANANA { APPLE *apple; }; struct ORANGE { BANANA *banana; }; int main(void) { /* //1113 ORANGE *orange; orange = new ORANGE; orange->banana = new BANANA; orange->banana->apple = new APPLE; orange->banana->apple->color = new long[3]; orange->banana->apple->color[0] = 10; orange->banana->apple->color[1] = 20; orange->banana->apple->color[2] = 30; printf("%d %d\n", orange->banana->apple->color[0], &orange->banana->apple->color[0]); printf("%d %d\n", orange->banana->apple->color[1], &orange->banana->apple->color[1]); printf("%d %d\n", orange->banana->apple->color[2], &orange->banana->apple->color[2]); delete[] orange->banana->apple->color; delete orange->banana->apple; delete orange->banana; delete orange; */ /* //1311 ORANGE *orange; orange = new ORANGE; orange->banana = new BANANA[3]; orange->banana[0].apple = new APPLE; orange->banana[1].apple = new APPLE; orange->banana[2].apple = new APPLE; orange->banana[0].apple->color = new long; orange->banana[1].apple->color = new long; orange->banana[2].apple->color = new long; *orange->banana[0].apple->color = 10; //*을 앞으로 c[]에 대한 *orange->banana[1].apple->color = 20; *orange->banana[2].apple->color = 30; printf("%d %d\n", *orange->banana[0].apple->color, &orange->banana[0].apple->color); printf("%d %d\n", *orange->banana[1].apple->color, &orange->banana[1].apple->color); printf("%d %d\n", *orange->banana[2].apple->color, &orange->banana[2].apple->color); delete orange->banana[0].apple->color; delete orange->banana[1].apple->color; delete orange->banana[2].apple->color; delete orange->banana[0].apple; delete orange->banana[1].apple; delete orange->banana[2].apple; delete[] orange->banana; delete orange; */ //3111 //o[].b->a->c; } | cs |