포인터 배열 구조체

2020. 3. 30. 11:07basic/자료구조

1. 포인터(Pointer) 변수 정의

  1-1. 변수 : 프로그램에서 사용되는 값을 저장하기 위한 컴퓨터 메모리 상의 일정 영역

  1-2. 포인터 변수 : 어떤 변수의 위치를 참조 (변수의 주소값(address)을 저장)

  예시) 동적메모리 할당 : int* p = malloc(sizeof(int));

          동적메모리 해제 : free p; p=NULL;

  1-3. 댕글링 포인터와 가비지

    - 댕글링 포인터(Dangling Pointer) : 이미 반납된 영역을 가리키고 있는 포인터 (free p에 해당됨)

    - 가비지(Garbage) : 동적으로 확보한 영역을 가리키던 포인터가 영역을 반납하지 않고 다른 영역을 가리킬 때, 이 영역은 사용하지 못하게 되는 가비지(Garbage)가 됨

 

2. 배열

  2-1. 배열 인덱스와 포인터

  동일한 데이터 타입의 변수 여러 개를 하나로 묶어서 관리하기 위한 자료구조

  메모리 상의 연속된 공간에 위치함

  각각의 원소를 엘리먼트(element, 요소)라 하며, 인덱스를 사용해서 원하는 요소로 바로 이동

  2-2. 2차원 배열

  행과 열로 구성된 도표를 저장하는데 유리한 자료구조

  내부적으로는 여전히 1차원으로 저장이 되지만, 외부적으로는 2차원(인덱스가 2개)으로 표현됨

  C에서는 행 우선 순서로 표현됨

 

3. 구조체

  3-1. 배열과의 차이점

    - 배열? 같은 데이터 타입을갖는요소들의집합

    - 구조체? 서로 다른 데이터 타입을갖는여러요소들을 하나의묶음으로표현

  3-2. 구조체 포인터

    - 구조체 변수 역시 포인터로 선언이 가능

 

<출처>

1. C로 쉽게 풀어쓴 자료구조(2019), 천인국, 생능출판사

2. C언어를 이용한 체험!자료구조(2018), 정기철, 연두에디션

3. C로 배우는 쉬운 자료구조(2013), 이지영, 한빛아카데미

'basic > 자료구조' 카테고리의 다른 글

리스트 자료구조  (0) 2020.03.30
자료구조와 알고리즘  (0) 2020.03.23