C, C++

C 메모리 동적할당

Jcon 2022. 8. 16. 15:09
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
#include <stdlib.h>//malloc , free함수 사용을 위한 헤더 파일
 
int main()
{
    //※ C 메모리 동적 할당
    //malloc(size) : size바이트 수 만큼 할당하고 (void*)형으로 위치 반환.
    //free(a); 동적으로 생성된 a의 공간을 반환
 
 
    int *p; // malloc에서 반환한 주소를 담을 포인터
    
    p = (int*)malloc(sizeof(int)); // malloc은 (void*)형을 반환하므로 형변환을 해주어야 한다!
 
    if (p == NULL// 메모리 할당 함수는 원하는 크기의 공간을 할당하지 못하면 NULL을 반환한다!
    {
        return;
    }
 
    free(p); // 메모리 반환
 
 
    int *p2;
 
    p2 = (int*)malloc(5 * sizeof(int)); //int[5]만큼의 메모리 공간 할당
 
    p2[2= 1//배열처럼 사용 가능
}
cs