반응형
동적할당은 말 그대로 프로그램 실행 중 메모리를 할당하는 것을 말합니다.
즉, 원하는 만큼 배열을 선언하거나 특정변수를 필요 시에만 선언할 수 있습니다.
효율적인 메모리 관리가 필요한 경우 자주 사용하게 됩니다.
동적할당은 2가지 함수가 필요합니다.
할당하는 함수, 반납(해제)하는 함수입니다.
malloc(): 지정된 바이트 수만큼의 메모리를 할당하고 할당된 메모리의 시작 주소를 반환합니다.
free(): 할당된 메모리를 해제하는 함수로, 할당된 메모리를 해제하여 다시 사용할 수 있도록 합니다.
아래 예시에는 작성하지 않았는데 malloc함수를 사용하고 보통 반환된 값이 NULL인지 확인합니다.
그 이유는 NULL인 경우 메모리 할당에 실패한 경우라 예외처리 등을 시행해야 합니다.
동적 메모리 할당은 배열이나 구조체와 같은 데이터 구조를 생성하거나 큰 크기의 데이터를 다룰 때 유용합니다.
단, 사용한 메모리는 반드시 해제해야 하며, 그렇지 않으면 메모리 누수가 발생합니다.
동적할당 프로세스: 할당 → 사용 → 반납
아래 변수에 따라 저장되는 메모리 영역이 달라지는 것도 한 번 확인하면 프로그래밍에 도움이 많이 될 것입니다ㅎㅎ
프로그래밍을 하다보면
반응형
'전공공부 > C, C++' 카테고리의 다른 글
[C] 13. C언어 함수포인터, const(상수화), typedef 등 (32) | 2024.03.01 |
---|---|
[C] 12. C언어 파일 입출력(FILE Stream) (31) | 2024.02.29 |
[C] 11. C언어 공용체 및 열거형 (11) | 2024.02.26 |
[C] 10. C언어 구조체 (32) | 2024.02.25 |
[C] 9. C언어 다차원 배열 및 다중 포인터 (32) | 2024.02.24 |