본문 바로가기
이건 알아야지's/C#

C언어 - 메모리의 동적할당

by 하루디 2023. 6. 20.

 

 

📌동적할당이란?

(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


코딩교육 티씨피스쿨

[C언어] 동적 메모리 할당의 세가지 방법 malloc, calloc, realloc

[C언어] 메모리 동적할당 (malloc, free) 함수 사용법 & 예제

'이건 알아야지's > C#' 카테고리의 다른 글

C#- 문자열 보간  (0) 2023.06.27