struct AA {
int a;
int b;
}
전역변수 pAA는 동적으로 할당되는 구조체 배열 AArray에 대한 포인터 변수이고, 초기값은 NULL이다.
struct AA* pAA = 0;
전역변수 numAA는 AArray에 포함된 구조체들의 개수를 나타내며, 초기값은 0이다.
int numAA = 0;
함수 funAdd(int a, int b)는
a와 b를 값으로 갖는 새로운 구조체를 AArray에 추가하는데,
이를 위해 기존배열보다 1개 구조체 크기만큼 더 큰 공간을 동적으로 할당받아서 추가를 진행한다.
기존 구조체 값들을 새로운 공간으로 복사하고, 새로운 값은 끝에 추가한다.
이때 pAA는 새롭게 할당된 공간주소를 가리킨다.
함수 funAdd를 아래 코드의 표시된 부분에 구현하시오.
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 | #include <stdio.h> #include <stdlib.h> struct AA { int a; int b; }; struct AA* pAA = 0; int numAA = 0; //-------------- 위로는 수정금지 ----------- void funAdd(int a, int b) { // pAA와 numAA를 이용하여 // funAdd가 호출될 때마다, 기존 보다 1개 더 구조체를 저장할 수 있는 공간을 // 동적으로 할당받아서, 새로운 구조체를 저장하는 코드를 저장하면 됨. } //---------------- 아래로는 수정금지 ------------ int main(void) { int a; int b; int c; while (1) { scanf("%d", &a); if (a == -999) { break; } scanf("%d", &b); funAdd(a, b); } scanf("%d", &c); printf("%d %d", pAA[c].a, pAA[c].b); return 0; } |