동적할당은 많은 기억공간을 한꺼번에 할당 받아서 배열로 사용하는 것이 효율적이다. 할당 받은 기억공간의 시작 위치만 포인터변수로 가리키게 하면 포인터변수를 배열명으로 사용하여 배열과 같이 활용할 수 있다. 아래의 예제 코드를 참고하자!
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int *ip;
int i = 0;
ip = (int *) malloc(5 * sizeof(int));
for(i=0; i<5; i++) {
printf("%d 번째 int값 : ", i+1);
scanf_s("%d", ip+i);
printf("\n");
}
for(i=0; i<5; i++) {
printf("%d ", ip[i]);
}
}
위의 코드에서 주목해야할 점은 두 가지이다.