동적 메모리 관리, 동적 메모리 할당

(2020-01-13)

동적 메모리 관리 함수, malloc, calloc, free()

Top > [기술공통]
[기초과학]
[진동/파동]
[전기전자공학]
[방송/멀티미디어/정보이론]
[통신/네트워킹]
[정보기술(IT)]
[공학일반(기계,재료등)]
[표준/계측/품질]
[기술경영]
정보기술(IT) >   1. 정보기술
[전산기초]
[컴퓨터구조]
[프로그래밍]
[데이터베이스]
[소프트웨어 공학]
[운영체제]
[정보보호/보안]
[IT 기타기술]
프로그래밍 >   1. 프로그램, 프로그래밍
[프로그래밍 언어론]
[프로그래밍 방법론]
[객체지향 프로그래밍]
[자료표현코드]
[자료구조]
[알고리즘]
[시스템 소프트웨어]
[프로그래밍언어 종류]
[프로그래밍 기타일반]
프로그래밍언어 종류 >   1. 프로그래밍 언어
[C]
[C++]
[자바(Java)]
[자바스크립트]
[PHP]
[파이썬]
[(기타 언어)]
C >   1. C 언어
  2. C 기초 문법
  3. C 연산자
[C 언어 컴파일]
[C 변수,자료형]
[C 상수,문자,문자열]
[C 함수]
[배열,포인터]
[구조체,공용체]
C 함수  1. C 함수
  2. C 함수 종류
  3. C 문자열 함수
  4. C 동적 메모리 관리 함수
  5. C 파일 처리 함수
  6. C 파일 포인터

1. 동적 메모리 관리(할당,해제)       ☞ 힙 메모리, 스택 메모리 참조컴파일메모리 공간을 확정하지 않고, 실행시 동적으로 처리


2. [C 언어]  동적 메모리 관리(할당,해제) 함수 (stdlib.h)
     
  ㅇ malloc()  : 실행중에 동적으로, 1개 값 형식으로, 메모리 공간(힙 메모리)을 할당 
     - 인수 : 할당할 메모리 크기를, 바이트 수로 전달
     - 반환 : 할당된 메모리 공간의 첫 바이트의 포인터를 반환 (void *)
        . 만일, 메모리 부족 등으로 할당 실패시, NULL을 반환
        . 항상, (void *)을 반환하므로, 캐스트 연산자를 써야 함
     - 변경 : 못함
        . 한 번 할당된 공간 크기 값들은 안 바꿈
        . 즉, 할당 만 가능, 초기화/변경은 할 수 없음

     - 例)
        . (int *) malloc (100*sizeof(int)); // 100개 정수 크기의 바이트 수
        . (float *) malloc (sizeof(float)); // 1개 실수 크기의 바이트 수

  ㅇ calloc()  : malloc과 유사하나, 2개 값 형식으로, 메모리 공간을 할당
     - 인수 : (개수,사이즈) 형식으로 전달받으며, 할당된 공간의 값을 모두 0으로 초기화
        . 따라서, 배열을 할당하고, 이를 모두 0으로 초기화 할 때는, calloc를 쓰면 편함

  ㅇ free()    : 이전 할당된 메모리 공간의 해제

  ㅇ realloc() : 이전 할당된 메모리 공간 크기 조정


3. [C++ 언어]  동적 메모리 관리(할당,해제) 연산자C 언어와 달리, 동적 메모리 할당/해제를 함수가 아닌 연산자를 사용
     - C 언어는, malloc()/free() 함수를 사용
        . 한편, malloc()은 할당 만 가능, 초기값 부여는 불가
     - C++ 언어는, 연산자를 사용하므로, 굳이 별도 헤더 파일을 포함시킬 필요 없음
        . new 및 delete 연산자

  ㅇ (할당 형식) : 포인터 = new 자료형(초기값);
     - 지정한 자료형의 크기 만큼 메모리를 할당하여 그 위치를 가리키는 포인터를 리턴(반환)함
     - 할당 실패시에는, NULL 값을 리턴함
     - 만일, 할당과 동시에 초기화하려면, 자료형 뒤 괄호()를 부가하여 그 안에 초기값을 지정함
     - 한편, C 언어의 malloc 함수는, 초기화는 할 수 없고, 할당 만 가능

  ㅇ (해제 형식) : delete (new가 리턴한 포인터);


[C 함수] 1. C 함수 2. C 함수 종류 3. C 문자열 함수 4. C 동적 메모리 관리 함수 5. C 파일 처리 함수 6. C 파일 포인터

    요약목록

Copyrightⓒ 차재복 (Cha Jae Bok)     「 소액후원 」 [ 최근편집 : RC 발진기(9월29일)  발진기 종류(9월29일)  레일레이 페이딩(9월29일)  OTA(9월29일)  VCVS(9월29일)  . . . ]