728x90
동적 메모리 할당 : (C언어에서) 필요한 만큼의 메모리를 운영체제로 부터 할당 받아서 사용하고, 사용이 끝나면 시스템에 메모리를 반납하는 기능
// 동적 메모리 할당의 예
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define SIZE 10
int main()
{
int *p; // p가 가리키는 장
p = (int *)malloc(SIZE * sizeof(int));
printf("현재 p에 저장된 참조값 : %d\n",p);
if (p == NULL) {
fprintf(stderr, "메모리가 부족해서 할당할 수 없습니다.\n");
exit(1);
}
for (int i=0; i<SIZE; i++)
p[i]=i;
for (int i=0; i<SIZE; i++)
printf("%d ", p[i]);
free(p); // 동적 메모리 반납
return 0;
}
/*
sizeof(int) => int 타입의 크기를 숫자로 반환한다.
printf("%d",sizeof(int));
출력값 : 4
malloc(sizeof(int)) => 동적 메모리 블럭의 시작 주소를 반환
printf("%d",malloc(sizeof(int)));
출력값 : 7279960 // 그때 그때 바뀜
*/
/* 출력값
현재 p에 저장된 참조값 : 12129656
0 1 2 3 4 5 6 7 8 9
*/
728x90
'Data structure' 카테고리의 다른 글
[C언어로 쉽게 풀어쓴 자료구조] Chapter 5 - 큐 (0) | 2022.02.19 |
---|---|
[C언어로 쉽게 풀어쓴 자료구조] Chapter 4 - 스택(Stack) (0) | 2022.02.18 |
[C언어로 쉽게 풀어쓴 자료구조] Chapter 2 순환 - 하노이 탑 (0) | 2022.02.15 |
[C언어로 쉽게 풀어쓴 자료구조] Chapter 2 순환 - 팩토리얼(순환,반복) / 거듭제곱(순환,반복) / 파보나치 수열(순환,반복) (0) | 2022.02.15 |
기수 정렬 (radix sort) (0) | 2021.07.18 |