일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 가우시안 필터링
- 영상처리
- 딥러닝 스터디
- object detection
- MFC 프로그래밍
- 팀프로젝트
- 파이토치 강의 정리
- tensorflow 예제
- 모두의 딥러닝 예제
- 컴퓨터 비전
- 골빈해커
- c++공부
- 미디언 필터링
- Pytorch Lecture
- c++
- pytorch
- 모두의 딥러닝
- 파이토치
- c언어 정리
- matlab 영상처리
- C언어 공부
- 해리스 코너 검출
- 딥러닝
- pytorch zero to all
- 김성훈 교수님 PyTorch
- 딥러닝 공부
- 파이토치 김성훈 교수님 강의 정리
- c언어
- 케라스 정리
- TensorFlow
- Today
- Total
ComputerVision Jack
[C프로그래밍 Chapter19] 본문
[메모리 구조]
프로그램 실행시, 메모리 공간이 운영체제에 의해서 준비된다.
이 메모리 공간에 변수가 선언되고 문자열이 선언된다.
메모리 구조
- 코드영역
- 데이터 영역
- 힙 영역
- 스택 영역
코드 영역(Code Area)
실행할 프로그램의 코드가 저장되는 메모리 공간
CPU는 코드 영역에 저장된 명령문을 하나씩 가져와서 실행한다.
데이터 영역(Data Area)
전역 변수와 static으로 선언되는 static변수가 할당된다.
프로그램 종료시까지 존재한다.
스택 영역(Stack Area)
지역 변수와 매개 변수가 할당된다. 함수 탈출시 소멸된다.
힙 영역(Heap Area)
프로그래머가 원하는 시점에 변수를 할당하고 소멸하도록 지원하는 영역
[메모리 동적 할당]
함수가 매번 호출될 떄마다 새롭게 할당되고 함수 탈출후에 유지가 되는 유형의 변수
생성과 소멸의 시기를 결정하는 유형의 변수는 malloc과 free 이름의 함수를 통해서 힙 영역에 할당하고 소멸한다.
malloc 함수 / free 함수
메모리 공간을 할당하는 함수 / 메모리 공간 해제하는 함수
#include <stdlib.h>
void malloc(size_t size);
void free(void * ptr);
calloc함수
malloc과 다르게 메모리 공간의 할당을 위한 인자 전달 방식이 다르다.
#include <stdlib.h>
void * calloc(size_t elt_count, size_t elt_size);
첫번째 인자로 할당할 블록의 갯수 정보가 전달, 두번째 인자로 블록 하나당 바이트 크기의 정보가 전달
realloc 함수
한번 할당된 메모리 공간의 크기 조절
#include <stdlib.h>
void * realloc(void * ptr, size_t size);
첫번째 인자로 확장하고자 하는 힙영역 시작주소 전달, 두번째로 메모리의 전체 크기를 전달한다.
'Programming Language > C Programming' 카테고리의 다른 글
[C프로그래밍 Chapter20] (0) | 2020.02.17 |
---|---|
[C프로그래밍 Chapter18] (0) | 2020.02.11 |
[C프로그래밍 Chapter17] (0) | 2020.02.10 |
[C프로그래밍 Chapter16] (0) | 2020.02.06 |
[C프로그래밍 Chapter15] (0) | 2020.02.05 |