우물 밖 병아리
[자료구조] 메모리 할당(Memory Allocation), 일차원/이차원 배열 본문
*개인 학습 목적으로 정리한 글입니다. 오류가 있다면 부담없이 지적해주세요, 감사합니다.*

**자료구조 학습의 목적 중 하나: 효율적 프로그램 작성
== 적은 자원(시간, 메모리)로 높은 효율을 내기 위함
1. 메모리 할당
*간략한 컴퓨터 구조
유저가 OS에서 LoL 실행 명령 ---> HDD(Disk Drive)에서 Memory로 LoL을 로드 ---> CPU가 Memory의 데이터를 이용해 LoL을 실행
- 프로그램이 실행될 때 OS는 자동적으로 실행에 필요한 메모리를 할당함
(여기서 program = 명령어 + 데이터)

- 오브젝트가 생성되면 멤버들에게도 메모리가 할당됨

1.1. 일차원 배열
** 논리적 개념
- 유한하고 고정된 크기, 같은 자료형의 요소들을 담음
- 인덱스를 사용하면 요소에 직접 접근 가능
- 데이터 요소를 저장하는 자연적 구조(?)
ex) 식료품 리스트, 학생 성적 리스트 등
** 구현
Address[index] = BaseAddress + Index * SizeOfElement
이때 BaseAddress는 첫번째 요소의 메모리상 위치를 말함


1.2 이차원 배열
** 논리적 개념
- 유한하고 고정된 크기를 가지며, 같은 자료형의 요소들을 담는 구조
- 2차원으로 정렬된 인덱스를 통해 요소에 직접적으로 접근 가능
- 생성 등의 연산이 인덱스 쌍(행, 열)의 선언으로 이루어짐
** 구현
- 실제 메모리에 C++은 2차원 배열을 선형적 구조로 저장


BaseAddress == 2000
row * [# of column] * SizeOfElement == 3 * 12 * 4(byte)
column * SizeOfElement == 7 * 4(byte)
계산 연습해보기~
'CS > 자료구조' 카테고리의 다른 글
| [자료구조] 스택(STACK)과 큐(QUEUE) (4) | 2024.12.27 |
|---|---|
| [자료구조] Unsorted/Sorted Lists(미정렬/정렬 리스트), Time Complexity(시간 복잡도) (3) | 2024.03.11 |
| [자료구조] 추상화, ADT(추상자료형), Class와 Struct (3) | 2024.03.11 |