동적메모리 할당과 c언어구현
- 최초 등록일
- 2019.07.27
- 최종 저작일
- 2019.07
- 6페이지/ 한컴오피스
- 가격 1,000원
소개글
"동적메모리 할당과 c언어구현"에 대한 내용입니다.
Visual Studio,c
목차
1.동적메모리 할당
2.Malloc(Memory Allocation)
3.Calloc
본문내용
1.동적메모리 할당
·전역적으로 선언된 변수나 배열을 선언하면, 프로그램의 시작부터 종료될때까지 메모리를 점유하므로 한정된 메모리의 공간을 비요율적으로 사용하게된다.이때 필요할 때만 메모리를 할당받아서 사용하고 반납하면 더 효율적일것이라는 생각에서 “동적 메모리 할당”이 나오게되었다.
∴동적메모리할당은 “실행 중에 원하는 기간 동안 필요한만큼의 메모리를 할당받는것”
·동적 메모리 할당을 요청하는 함수는 Malloc ,Calloc ,realloc이 있다.
·동적 메모리 할당과 관련된 함수들은 <stdlib.h>에 정의
·동적 메모리 할당 후에는 free()로 메모리할당을 해제한다
·데이터영역
프로그램 시작과 동시에 할당되고 종료시소멸
·스택영역
함수가 작업을 수행하는데 사용되는 메모리공간
·힙영역
프로그램의 실행 중에 동적으로 메모리를 할당받아 사용할수 있는 영역으로.지금부터 설명할 동적메모리 할당은 모두 힙영역에서 이루어지는 것이다.
1.Malloc(Memory Allocation)
·void* malloc(size_t size)!
·malloc()의 반환값은 타입이 ‘void*'이므로, 이 값을 어떠한 타입의 포인터에 저장하여도 된다.
·만일 요청한 메모리를 할당받지 못하면 ,malloc(0은 NULL을 반환한다.그래서 malloc()을 호출한 후에 if문으로 반환값을 확인해야 하지만, 할당에 실패하는 경우가 거의 없기 때문에 거의 생략한다.
1.Calloc
·void* calloc(size_t n, size_t size); //n* size(byte_의메모리동적할당
·calloc() 은 타입의 크기와 개수를 따로받는다.
·malloc()으로 할당받은 메모리는 자동초기화가 되지 않으므로
이전에 쓰레기 값이 들어있지만, calloc()으로 할당받은 메모리는 모두 0 으로 자동초기화된다.
참고 자료
없음