분류 전체보기(636)
-
C++ 초급 - 5. 포인터와 참조 (Pointers and References) (4 - 스마트 포인터 (std::unique_ptr, std::shared_ptr, std::weak_ptr))
📌 5.4 스마트 포인터 (std::unique_ptr, std::shared_ptr, std::weak_ptr)C++11부터 스마트 포인터(Smart Pointer)가 도입되어,개발자가 직접 delete를 호출하지 않아도 메모리가 자동 관리된다.스마트 포인터를 사용하면 메모리 누수를 방지하고, 포인터의 안전성을 향상시킬 수 있다.C++ 표준 라이브러리 헤더를 포함하면 사용할 수 있다.📌 1. 스마트 포인터의 필요성일반 포인터(new/delete)를 사용하면 메모리 누수(Memory Leak)가 발생할 위험이 있다.특히, 예외(Exception)가 발생하는 경우 delete가 호출되지 않아 누수가 발생할 수 있다.💡 일반 포인터의 문제점 (메모리 누수 발생)#include void memoryLe..
2025.02.12 -
C++ 초급 - 5. 포인터와 참조 (Pointers and References) (3 - 참조 (& 연산자))
📌 5.3 참조 (& 연산자)참조(Reference)는 변수의 별칭(Alias) 역할을 하는 변수이다.참조를 사용하면 기존 변수를 새로운 이름으로 다룰 수 있으며, 포인터와 유사하지만 한 번 초기화되면 다른 변수를 가리킬 수 없는 특징이 있다.참조는 특히 함수 매개변수 전달(Call by Reference)에서 자주 사용되며, 복사 비용을 줄이고 원본 값을 직접 수정할 수 있도록 해준다.📌 1. 참조 변수의 선언 및 초기화🔹 (1) 참조 변수 선언 방식참조 변수를 선언할 때는 & 연산자를 사용하며, 반드시 초기화해야 한다.💡 기본 문법데이터타입 &참조변수명 = 기존변수명;💡 예제: 참조 변수 선언 및 초기화#include int main() { int num = 10; int& ref..
2025.02.12 -
C++ 초급 - 5. 포인터와 참조 (Pointers and References) (2 - 동적 메모리 할당 (new, delete))
📌 5.2 동적 메모리 할당 (new, delete)C++에서는 new와 delete 키워드를 사용하여 런타임(Run-time)에 동적으로 메모리를 할당 및 해제할 수 있다.동적 메모리 할당을 활용하면 프로그램 실행 중 필요한 만큼 메모리를 할당할 수 있으며,전역 변수나 지역 변수로 선언할 수 없는 대량의 데이터 처리나 가변적인 크기의 배열 관리가 가능하다.그러나, 할당한 메모리를 해제하지 않으면 메모리 누수(Memory Leak)가 발생할 수 있으므로 delete를 사용하여 반드시 해제해야 한다.📌 1. new와 delete를 사용한 동적 메모리 할당 및 해제🔹 (1) new 키워드: 동적 메모리 할당new 키워드는 힙(Heap) 영역에 메모리를 동적으로 할당한다.사용이 끝나면 반드시 delete..
2025.02.12 -
C++ 초급 - 5. 포인터와 참조 (Pointers and References) (1 - 포인터 기본 개념 (*, &, nullptr))
📌 5. 포인터와 참조 (Pointers and References)C++에서 포인터(Pointer)와 참조(Reference)는 메모리 주소를 직접 다루는 기능을 제공한다.포인터와 참조를 사용하면 효율적인 메모리 관리와 객체 제어가 가능하지만,올바르게 사용하지 않으면 메모리 누수(Memory Leak)나 프로그램 오류가 발생할 수 있다.C++11에서는 스마트 포인터(Smart Pointer)가 도입되어 메모리 관리를 자동화할 수 있다.이 단원에서는 포인터와 참조를 다루며, 동적 메모리 할당 및 스마트 포인터의 활용까지 학습한다.📌 5.1 포인터 기본 개념 (*, &, nullptr)포인터(Pointer)는 메모리 주소를 저장하는 변수이다.일반 변수는 값을 저장하지만, 포인터는 변수의 주소를 저장하며..
2025.02.12 -
C++ 초급 - 4. 함수와 변수의 범위 (Functions and Variable Scope) (5 - inline 함수 (Inline Functions))
📌 4.5 inline 함수 (Inline Functions)inline 함수(인라인 함수)는 함수를 호출할 때 발생하는 오버헤드를 줄이기 위해, 컴파일러가 함수 호출을 코드로 직접 치환하는 기능이다.일반적인 함수 호출은 스택(Stack) 메모리를 사용하고, 함수의 주소로 이동하는 과정(컨텍스트 스위칭)이 필요하다.반면, inline 함수는 함수의 코드가 호출 위치에 직접 삽입(inline expansion)되어 실행 속도가 향상될 수 있다.📌 1. inline 함수의 개념일반적인 함수 호출 과정함수 호출 시 매개변수와 반환 주소를 스택에 저장함수 코드 실행 후 반환스택에서 데이터 정리 및 반환 주소로 복귀이러한 과정은 함수를 자주 호출하는 경우 실행 속도를 저하시킬 수 있다.따라서, inline 함..
2025.02.12 -
C++ 초급 - 4. 함수와 변수의 범위 (Functions and Variable Scope) (4 - 변수의 범위 (Variable Scope))
📌 4.4 변수의 범위 (Variable Scope)C++에서 변수의 범위(Scope)란 변수가 어디에서 접근할 수 있는지를 결정하는 규칙이다.변수의 선언 위치와 저장 방식에 따라 접근 가능 여부와 생명 주기(lifetime)가 달라진다.변수의 범위를 이해하면 메모리 관리, 성능 최적화, 코드 유지보수에 도움이 된다.📌 1. 변수의 종류🔹 (1) 전역 변수 (Global Variables)함수 외부에서 선언된 변수로, 프로그램 전체에서 접근 가능.프로그램이 시작될 때 생성되고 종료될 때까지 유지됨.메모리의 데이터 영역(Data Section)에 저장됨.💡 예제: 전역 변수 사용#include int globalVar = 10; // 전역 변수void printGlobal() { std::c..
2025.02.12