2020. 3. 30. 11:07ㆍbasic/자료구조
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 |