2학년 2학기/c언어

13-3장 동적 할당 영역을 배열처럼 쓰기

kkkkk1023 2024. 11. 19. 23:55

이전에 malloc을 이용해서 Heap 영역에 있는 메모리를 동적 할당 받는 것을 해봤다. 이전에는 4byte(int)만 할당 받았지만, 이번에는 4byte를 5개 받아서 즉 int arr[5]와 같은 효과를 내는 메모리를 동적할당 받아보자.

 

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int* pi;
    pi = (int*)malloc(5 * sizeof(int));
    if (pi == NULL) {
        printf("메모리 할당 오류\n");
        exit(1);
    }
    
    *pi = 1; // pi[0] = 1;
    *(pi + 1) = 2; // pi[1] = 2;
    *(pi + 2) = 3; // pi[2] = 3;
    *(pi + 3) = 4; // pi[3] = 4;
    *(pi + 4) = 5; // pi[4] = 5;
    free(pi);
    
    return 0;
}

 

이렇게 sizeof(int) * 5해주면 총 20byte를 동적 할당 받을 수 있다.