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 | 31 |
Tags
- fabic
- web3js
- Glide
- firebase
- test
- fabric-sdk-java
- dataginding
- bigquery
- hardwareacceleration
- 컴파일
- quick-start
- 스트리밍
- Hyperledger
- Gradle
- ethereum
- 안드로이드
- log
- porterduff
- null safety
- convert
- vuepress
- C
- Android
- error
- 다윈
- kotlin
- coroutines
- Realm
- Exception
- LAYER_TYPE_SOFTWARE
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