📌동적할당이란?
(Dynamic Allocation)
힙 영역의 크기는 프로그램이 실행되는 도중인 런타임에 사용자가 직접 결정하게 된다. 이렇게 런타임시 메모리를 할당받는 것을 메모리의 동적 할당이라고 한다.
📌사용법
malloc( )함수
c언어에서는 malloc( )함수를 통해서 프로그램이 실행중일때 사용자가 직접 힙 영역에 메모리를 할당할 수 있게 해준다.
- malloc함수를 사용하기 위해서 <stdlib.h>나 <malloc.h>를 포함해야한다.
#include <stdlib.h>
void malloc(size_t size) //함수원형
매개변수에 해당하는 size_t 크기만큼 메모리를 할당한다.
할당받고자하는 크기만큼 메모리의 크기를 바이트 단위로 전달받는다.
반환값 : 성공시 할당할 메모리의 첫번째주소를 리턴, 실패시 null 리턴
사용종료시 free( ) 함수를 사용해서 메모리를 해제한다.(필수)
void free(void *ptr)
주소값을 반환받기때문에 힙 영역에 할당된 메모리 공간으로 접근하려면 포인터를 사용해야한다.
calloc( )함수
malloc과 같이 힙영역에 메모리를 할당한다.
사용법과 초기값이 다르다.
calloc은 할당된 메모리를 전부 0으로 초기화한다.
void *calloc(size_t n, size_t size)
n* size만큼의 메모리를 할당한다
realloc( )함수
할당된 메모리를 다시 할당할때 사용한다.
기존에 할당했던 포인터와 다시 할당할 size를 매개변수로 전달한다.
void *realloc(void *memblock, size_t size)
근데 이게 c 에서 그런거고 c# 에서도 그런가..?
java에서는 arraylist가 크기를 안정한 배열로 일하고 있다.
📌Refs
'이건 알아야지's > C#' 카테고리의 다른 글
C#- 문자열 보간 (0) | 2023.06.27 |
---|