1️⃣ 정적 메모리 vs 동적 메모리

방식 시점 메모리 크기 특징
정적 할당 (static) 실행 전 고정 크기가 부족하면 처리 X / 크기가 남으면 낭비
동적 할당 (dynamic) 실행 중 필요한 만큼만 메모리를 효율적으로 사용 가능
int buffer[80];   // 정적 할당 → 크기 고정

int *p = malloc(sizeof(int));  // 동적 할당 → 실행 중 확보


2️⃣ malloc() & free()

✅ 메모리 할당

void *malloc(size_t size);

✅ 메모리 해제

void free(void *ptr);


예제

int *p;
p = (int *)malloc(sizeof(int));   // int 공간 1개 할당
*p = 10;
free(p);    // 반납


3️⃣ 문자열 + 동적 메모리