Computer/C/C++
동적 할당
고양이는생선을좋아해
2013. 5. 14. 22:47
정적 할당은 고정된 크기로 프로그램이 실행이 끝날 때 까지 기억장소를 할당받는다.
그리고 프로그램 실행이 끝나면 할당된 기억장소가 해제된다.
정적 할당의 문제점을 보면
만약 배열 100칸을 할당했다치면 100개를 초과하는 데이터가 들어올경우 전부 받을 수 없고
또한 100개 미만의 데이터가 왔을 시에 기억공간 낭비가 생긴다.
이 문제점을 해결하기 위한것이 동적 할당이다.
즉 프로그램을 실행하면서 배열의 크기를 결정하고 그 크기만큼의 기억공간을 할당받는 것이다.
코드 영역 |
데이터 영역 |
힙 영역 |
스택 영역 |
주기억장치의 4가지 영역 중 힙 영역이 동적으로 할당할 기억 장소
동적할당
C
자료형* 포인터 변수명;포인터 변수명 = (자료형*)malloc(자료형 크기);
C++
자료형* 포인터 변수명;
포인터 변수명 = new 자료형(자료형 크기);
해제
C
free(포인트 변수명);
C++
Delete[] 포인터변수명;