c언어 동적 메모리

신범철·2021년 12월 8일
0

21-2c수업

목록 보기
8/8

동적 할당 메모리 개념

  • 프로그램이 메모리를 할당받는 방법
    정적(static)
    동적(dynmic)

정적 메모리 할당

그냥 기본적인 방법

  • 프로그램이 시작되기 전에 미리 정해진 크기의 메모리를 할당 받는 것
  • 메모리의 크기는 프로그램이 시작하기 전에 결정

ex) int score_s[100];

  • 처음에 결정된 크기보다 더 큰 입력이 들어오면 오류!
  • 더 작은 입력이 들어오면 메모리 낭비!

동적 메모리 할당

  • 실행 도중에 동적으로 메모리를 할당받는 것
  • 사용이 끝나면 시스템에 메모리를 반납
    ex) score = (int ) malloc(100sizeof(int));
  • 필요한 만큼만 할당 받고 메모리를 매우 효율적으로 사용

malloc : 동적 메모리 할당
calloc : 0으로 초기화된 동적 메모리
realloc : 동적 메모리 볼록의 크기 수정

연결리스트

배열 : 구현이 간단하고 빠르다. 하지만 크기가 고정된다. 중간에서 삽입 삭제가 어렵다. 정적으로 구현되어있다.

연결리스트 : 포인터를 사용하여 다음 항목을 가르킨다. 랜덤 접근이 어렵다.
중간에 데이터를 삽입, 삭제가 쉽다.
구현하기 어렵다. 중간에 있는 데이터를 빠르게 가져올수있다.
동적으로 구현되어있다.

profile
https://github.com/beombu

0개의 댓글