본문 바로가기

분류 전체보기174

Chapter 10 - 콜백 함수 함수 포인터 #1 int* pointer = &a int : 데이터 타입 pointer : 변수 이름 int Add(int a, int b) { return a + b; } int main() { typedef int(FUNC_TYPE)(int a, int b); using FUNC_TYPE = int(int a, int b); // modern C++ FUNC_TYPE* fn = ADD; int result = fn(1, 2); int result2 = (*fn)(1, 2); } FUNC_TYPE* fn = ADD() FUNC_TYPE : 데이터 타입 fn : 변수 이름 Add : 주소를 저장할 대상 함수 함수의 이름은 함수의 시작 주소를 가짐(배열과 유사) 함수 포인터에는 접근 연산자 *를 붙여도 함.. 2023. 3. 29.
Chapter 9 - 디버깅 디버깅 F5 : 다음 중단점 혹은 프로그램 끝까지 실행 F10 : 단순히 다음 라인으로 진행 F11 : 호출된 함수 내부로 진입 중단점 항목에서 중단점들을 간편하게 관리 가능 중첩된 함수 호출시 호출 스택 정보가 유용하게 사용됨 중단점에 조건식을 걸어줄 수도 있음 중단점에서 로그 메세지를 출력하도록 할 경우 중단하는 대신 메시지를 디버그 콘솔에 표시함 코드를 읽는 것보다 디버깅을 하는 것이 훨씬 효율적임 디버깅 문제 풀이 #1 / #2 / #3 Q1 : 인수가 설정된 생성자에서 변수를 초기화하지 않음 Q2 : 배열의 인덱스 범위를 벗어남 Q3 : hp가 음수가 되는 경우를 상정하지 않음 Q4 : 오버플로우가 발생하는 경우를 상정하지 않음 Q5 : 0으로 나눠지는 경우를 상정하지 않음 Q6 : 무한한 재귀.. 2023. 3. 29.
Chatper 8 - 실습 title: "C++ lecture section8 [1/1]" excerpt: "실습" categories: Cpp_lecture tags: [C++] toc: true toc_sticky: true toc_label: "목차" date: 2022.10.06 14:30:00 TextRPG(OOP) #1 / #2 / #3 // Game.h class Player; // 전방선언 class Field; class Game { public: Game(); ~Game(); void Init(); void Update(); void CreatePlayer(); private: Player* _player; Field* _field; }; // Game.cpp #include "Game.h" #include "P.. 2023. 3. 29.
Chapter 7 - 동적 할당 동적 할당 #1 코드 영역 : 실행할 코드가 저장되는 영역 데이터 영역 : 전역(global) / 정적(static) 변수가 저장되는 영역 스택 영역 : 지역 변수 / 매개 변수가 저장되는 영역 힙 영역 : 동적 할당이 이루어지는 영역 스택 영역은 함수가 끝나면 정리되는 불안정한 메모리 따라서 잠시 함수에 매개변수를 넘긴다던가 하는 용도로 적합함 데이터 영역은 프로그램이 실행되는 도중 무조건 사용됨 따라서 필요할 때 사용하고, 필요없으면 반납할 수 있는 힙 영역이 유용하게 쓰임 힙 영역에서 동적 할당이 이루어짐 malloc, free, new, delete, new[], delete[] 프로그램의 구동 영역에는 유저 영역과 커널 영역이 있음 커널 영역 : Windows 등의 핵심 코드 유저 영역 : 메모.. 2023. 3. 29.