[c] 메모리 구조와 동적 객체 생성

mj·2022년 4월 22일
0

[C] 알고리즘

목록 보기
2/20

C언어의 메모리 구조

  • 데이터
  • 스택

할당시기 : 프로그램이 실행될 때마다 할당 (실행될 때마다 주소값이 바뀜)
할당장소 : 메인메모리 (RAM)

  • 데이터 영역

    : 전역변수와 정적변수가 할당

  • 스택 영역

    : 함수호출 시에 생성되는 지역변수와 매개변수가 저장됨 (함수호출이 완료되면 사라짐)

  • 힙 영역

    : 필요에 따라 동적으로 메모리 할당
    할당해야할 메모리 영역의 크기를 프로그램이 실행되는 동안(런타임) 결정해야 하는 경우에 사용

calloc 함수

  • 헤더 : <stdlib.h>
  • 형식 : void *calloc(size_t nmemb, size_t size);
  • 설명 : 크기가 size인 자료가 nmemb개만큼 들어갈 메모리를 할당, 할당한 메모리 영역은 모든 비트가 0으로 초기화된다.

malloc 함수

  • 헤더 : <stdlib.h>
  • 형식 : void *malloc(size_t size);
  • 설명 : 크기가 size인 메모리를 할당, 할당한 메모리 값은 정의되지 않는다.

free 함수

  • 헤더 : <stdlib.h>
  • 형식 : `void free(void *ptr)
  • 설명 : ptr이 가리키는 메모리를 해제하여 이후에 다시 할당할 수 있도록 한다.
profile
일단 할 수 있는걸 하자.

0개의 댓글