Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- Exception
- test
- firebase
- Gradle
- Realm
- null safety
- ethereum
- 다윈
- Android
- error
- coroutines
- hardwareacceleration
- 스트리밍
- C
- 안드로이드
- LAYER_TYPE_SOFTWARE
- convert
- 컴파일
- quick-start
- log
- fabric-sdk-java
- Glide
- web3js
- vuepress
- dataginding
- porterduff
- Hyperledger
- bigquery
- kotlin
- fabic
Archives
- Today
- Total
날마다 새롭게 또 날마다 새롭게
C언어의 메모리구조과 동적할당 본문
프로그램의 실행을 위해서 사용하는 메모리 공간은 데이터 영역, 힙영역, 스택영역 세 가지로 나뉜다.
1)데이터 영역: 전역변수, static변수
2)힙 영역: 프로그래머 할당 ( ->메모리 동적할당 )
3)스택 영역: 지역변수, 매개변수
메모리 할당
정적 할당 : 스택과 데이터 영역에 메모리 할당 (컴파일 타임에 메모리 크기 결정)
동적 할당 : 힙 영역에 메모리 할당 (런 타임에 메모리 크기 결정)
■ malloc 함수
malloc 함수는 동적으로 메모리를 할당하는 함수이다.
1)데이터 영역: 전역변수, static변수
2)힙 영역: 프로그래머 할당 ( ->메모리 동적할당 )
3)스택 영역: 지역변수, 매개변수
메모리 할당
정적 할당 : 스택과 데이터 영역에 메모리 할당 (컴파일 타임에 메모리 크기 결정)
동적 할당 : 힙 영역에 메모리 할당 (런 타임에 메모리 크기 결정)
■ malloc 함수
malloc 함수는 동적으로 메모리를 할당하는 함수이다.
void* malloc(size_t size)
성공 시 할당된 메모리의 첫 번째 주소 리턴, 실패 시 NULL 포인터 리턴..
■ free 함수
free 함수는 동적으로 할당한 메모리를 해제하는 함수이다.
void* free(void* block)
리턴값 없음.
※ C++ 메모리 동적 할당 시, new와 delete를 사용한다.
c++는 기본적으로 클래스 구조로 되어 있다. 따라서 객체가 만들어질 때, 생성자를 소멸될 때, 소멸자를 호출해야 하는데 C언어에서 사용하는 malloc과 free는 생성자와 소멸자를 호출하지 않음으로 c++에서 메모리를 동적으로 할당할 때는 new와 delete를 사용해야 합니다.
■ new 함수
C++에서 동적으로 메모리를 할당하는 함수는 new 이다.
int* ptr = new int;
■ delete 함수
C++에서 동적으로 메모리를 해제하는 함수는 delete 이다.
delete ptr;
Comments