전체 글328 3-3. 가상 주소 공간과 DLL 가상 주소 공간이란? 두 프로세스 A, B가 켜져 있을 때, A가 물리메모리 0x10000000번대 주소를 사용하고, B가 물리메모리 0x20000000번대 주소를 사용하는 경우를 가정해보자. 어쩌다 A가 실수로 0x21000000번대 주소로 접근해서 잘못 참조할 수 있다. 이걸 막으려면 두 프로세스는 가상의 주소공간을 갖고, 실제 물리 메모리는 운영체제가 관리 해주는게 좋을 것 같다. 물리 메모리를 직접 사용하면 안되는 이유 프로세스 간 안정성이 떨어짐 사용할 수 있는 주소에 제약이 있음 (다른 프로세스의 주소를 피해야 하므로) Page Table 이에 대한 방안으로 Page Table이라는 방안을 통해 해결한다. 페이지테이블은 위와 같은 문제들을 방지하기 위해서 물리 주소와 가상 주소를 매핑해주는 역.. 2022. 9. 12. 3장-4. 일반적인 링크드 리스트 구현 (단일, 이중, 환형) 단일 링크드 리스트 구현 일반적인 단일 링크드 리스트는 SLinkedList라고 불린다. C++의 템플릿 매커니즘을 통해 string이 아닌 다른 타입들도 받을 수 있도록 한다. 따라서 링크드 리스트를 구성하는 노드(SNode)도 템플릿으로 작성된다. #pragma once // SLinkedList를 구성하는 노드 template class SNode { private: E elem;// 노드가 가진 값 SNode* next; // 다음 요소를 가리키는 포인터 friend class SLinkedList; }; // 일반화된 단일 링크드 리스트 template class SLinkedList { public: SLinkedList(); ~SLinkedList(); bool empty() const;//.. 2022. 9. 12. CPP_1. AssortRock 4일차 오프라인 수업_220908 포트폴리오에 대한 이야기 간단한 게임 하나 만들어 보는 것도 포트폴리오로 이용할 수 있으니 열심히 해야 함 학원에서 배우며 준비하는 것 + 콘솔 @개 허접하더라도 판단은 면접관님이 하기 때문 define에 대한 이야기 define 새타입 기존타입 으로 작성 가독성이나 복잡한 코드를 간결하게 표현하기 위해 사용 전처리과정에서 기존 코드로 치환해 준다 ifdef에 대한 이야기 ifdef란 어떤 define의 선언 유무에 따라 스코프안에 줄이 읽히냐 마냐를 판별하는 조건 식 endif로 닫아주어야 함 이중포인터에 대한 이야기 1차원 배열을 담을 땐 이름으로 담았음 2차원 배열의 포인터는 int (*arr2d)[4] 이런 식으로 사용한다. 이중 포인터, 배열 포인터라고 한다. int* pArr[4]는 포인터 배.. 2022. 9. 11. 3장-3. 단일 링크드 리스트 (String 버전) 단일 링크드 리스트란? 링크드 리스트 중에서 가장 단순한 형태 단일 노드들로 연결된 노드들이 연결된 집합 각각의 노드는 다음 노드를 가리키는 포인터 next를 저장하고 그와 관계된 원소를 저장한다. 링크드 리스트의 제일 처음과 마지막 요소를 head와 tail이라고 한다. #pragma once class StringNode { string elem; StringNode* next; friend class StringLinkedList; }; StringNode.h #pragma once class StringLinkedList { public: StringLinkedList(); ~StringLinkedList(); bool empty() const; const string& front() const;.. 2022. 9. 11. 이전 1 ··· 73 74 75 76 77 78 79 ··· 82 다음