일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- gcc 컴파일
- 데이터 해저드
- 남산업힐
- 클럭 게이팅
- pyverilog 설치 오류
- AMBA
- Pyvrilog tutorial
- 딥러닝 가속기
- linux c 컴파일
- linux makefile 작성
- DNN 가속기
- Makefile compile
- pytest-pythonpath 설치 오류
- 이진수 곱셈 알고리즘
- CDC
- Data HAzard
- DNN Accelerator
- pygraphviz 설치 오류
- linux c++ 컴파일
- CUDA
- Pyverilog 튜토리얼
- systolic array
- Pyverilog 실행
- Pyverilog 설치
- 대구 반도체 설계기업 특화
- CLOCK GATING
- 컨벌루션 연산
- Design DNN Accelerator
- makefile
- gpgpu-sim
- Today
- Total
오늘은 맑음
c언어 동적 할당, malloc 본문
c언어에서는 malloc을 이용해서 동적할당을 할 수 있습니다.
malloc은 stdlib.h 안에 들어있으므로 사용하려면 stdlib 헤더파일을 include 해주셔야 합니다.
malloc함수의 원형은 다음과 같습니다.
void *malloc(size_t Size);
malloc은 함수의 동작이 성공하면 시작 메모리 주소를 반환하고, 실패하면 NULL을 반환합니다.
그리고 시작 메모리 주소부터 Size만큼을 동적 메모리로 할당합니다.
포인터를 선언하고 malloc을 이용해서 동적할당을 해보겠습니다.
int형으로 buffer를 선언하고 malloc을 이용해서 int * 10을 사이즈로 잡아줍니다.
그러면 이제 buffer에는 int 사이즈만큼의 메모리 x 10만큼의 크기가 동적할당됩니다.
이제 buffer를 출력해보겠습니다.
포인터를 출력하는데는 두 가지 방법이 있습니다.
1. 배열 인덱스 방식 출력
2. 포인터 형식 출력
둘 중 편한 방식으로 사용하시면 됩니다.
컴파일 후 실행을 해보니 모두 출력이 잘 되는 것을 확인할 수 있습니다.
그리고 동적 할당을 한 경우 꼭 free함수를 사용해서 해제해줍시다.
동적할당이 된 메모리 영역은 OS에서 사용할 수 없게 됩니다.
결국 프로그램이 종료될 때 까지 동적할당은 유지가 됩니다.
만약 프로그램이 수행되는 도중 free를 하지 않은 채 malloc을 계속 사용하게 된다면, 결국 사용가능한 메모리가 점점 줄어들어 어버버하다가 죽게 됩니다.
따라서 꼭 free를 사용해서 해제해줍시다.
'Language > c, c++' 카테고리의 다른 글
자료구조/알고리즘 공부, 알고리즘의 중요성 (0) | 2022.04.10 |
---|---|
C언어 구조체와 포인터 멤버 참조 (0) | 2022.04.10 |
C++ 이차원 벡터 사용 (0) | 2019.04.13 |
최소공배수 / 유클리디안 호제법 (0) | 2019.03.20 |
c++ argc argv 사용하기 (0) | 2019.03.18 |