1차원 배열
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
int main()
{
int size;
scanf("%d", &size);
int *numPtr = malloc(sizeof(int) * size); // (int 크기 * 입력받은 크기)만큼 동적 메모리 할당
for (int i = 0; i < size; i++) // 입력받은 크기만큼 반복
{
numPtr[i] = i; // 인덱스로 접근하여 값 할당
}
free(numPtr); // 동적으로 할당한 메모리 해제
return 0;
}
| cs |
2차원 배열
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include <stdio.h>
#include <stdlib.h> // malloc, free 함수가 선언된 헤더 파일
int main()
{
int **m = malloc(sizeof(int *) * 3); // 이중 포인터에 (int 포인터 크기 * 세로 크기)만큼
// 동적 메모리 할당. 배열의 세로
for (int i = 0; i < 3; i++) // 세로 크기만큼 반복
{
m[i] = malloc(sizeof(int) * 4); // (int 크기 * 가로 크기)만큼 동적 메모리 할당.
// 배열의 가로
}
for (int i = 0; i < 3; i++) // 세로 크기만큼 반복
{
free(m[i]); // 2차원 배열의 가로 공간 메모리 해제
}
free(m); // 2차원 배열의 세로 공간 메모리 해제
return 0;
}
| cs |
출처 : c언어 코딩강좌
댓글
댓글 쓰기