본문 바로가기

개발

[C언어] 동적 할당 malloc

동적할당 정의

값을 저장할 메모리 공간의 크기를 고정해놓는 것이 아닌(정적할당)

프로그램 실행 후 적정한 크기를 지정하는것

 

동적할당 배열 만들기

헤더 추가

#include<stdlib.h>

 

자료형*malloc(할당받을 메모리 크기)

 

1) 1차원 배열

 

int size=4;
int *Arr;
Arr=(int*)malloc(sizeof(int)*size);

할당 해제

free(Arr);

 

 

2) 2차원 배열

int height = 6, width = 8;
int **arr;

arr = (int**) malloc ( sizeof(int*) * height );

for(int i=0; i<height; i++)
{    arr[i] = (int*) malloc ( sizeof(int) * width );    }

 

할당 해제

for(int i=0; i<height; i++)
{    free(arr[i]);   }

free(arr);

 

동적할당된 배열 크기 구하기

int size = _msize(포인터변수)/sizeof(*포인터변수)

int arrSize = _msize(arr)/sizeof(int);

 

+주의)  _msize는 비표준함수이다~~

 

 

 

 

 

 

'개발' 카테고리의 다른 글

플로이드 와샬 알고리즘(Floyd Warshall)  (1) 2024.11.18
[프로그래머스] 피로도 (C++)  (0) 2024.11.18
[프로그래머스] 모의고사 (C++)  (0) 2024.11.16
다익스트라 알고리즘 (Dijkstra)  (0) 2024.11.15
포트포워딩  (0) 2023.11.28