
포인터(Pointer)와 레퍼런스(Reference)
2021. 3. 1. 19:28
DevLog/C & C++
포인터와 레퍼런스 포인터 레퍼런스 표현 * & 의미 메모리 주소를 가리킨다 값에 직접 접근하는 주소 변수 접근시 나타나는 값 가리키는 주소가 가진 변수의 값 변수의 내용이 저장된 메모리 주소값 상수 참조 X X NULL 초기화 가능 여부 O X 초기화 객체(변수)의 주소값을 입력받음 객체(변수)를 직접 입력받음 초기화 여부 꼭 하지 않아도 됨 반드시 해야함 (나중에 값을 바꿀 수 없기 때문에) 초기화 이후 다른 변수 참조 가능 다른 변수 참조 불가능 특징 메모리 공간을 할당함, 포인터가 가리키는 주소의 크기는 자료형이 무엇이든 간에 항상 같다. 메모리 공간이 할당되는 것이 아님. 이미 선언된 변수를 다른 이름으로 부르는 것 포인터와 레퍼런스가 생긴 계기 입력값을 받는 함수의 변수가 값을 복사한다. 항상 ..

C++ 포인터 개념
2021. 2. 4. 15:43
DevLog/C & C++
주소값의 이해 데이터의 주소값이란 해당 데이터가 저장된 메모리의 시작 주소를 의미합니다. C++에서는 이러한 주소값을 1바이트 크기의 메모리 공간으로 나누어 이해할 수 있습니다. 예를 들어, int형 데이터는 4바이트의 크기를 가지지만, int형 데이터의 주소값은 시작 주소 1바이트만을 가리키게 됩니다. 포인터란? C++에서 포인터(pointer)란 메모리의 주소값을 저장하는 변수이며, 포인터 변수라고도 부릅니다. char형 변수가 문자를 저장하고, int형 변수가 정수를 저장하는 것처럼 포인터는 주소값을 저장하는 데 사용됩니다. int n = 100; // 정수형 변수의 선언 int *ptr = &n; // 정수형 변수의 포인터 선언 다음 그림은 위의 예제에서 사용된 변수와 포인터가 메모리에서 어떻게 ..
C++ 스마트포인터
2021. 1. 23. 15:19
DevLog/C & C++
스마트 포인터(Smart pointer) C++ 프로그램에서 new 키워드를 사용하여 동적으로 할당받은 메모리는, 반드시 delete 키워드를 사용하여 해제해야 합니다. C++에서는 메모리 누수(memory leak)로부터 프로그램의 안전성을 보장하기 위해 스마트 포인터를 제공하고 있습니다. 스마트 포인터(smart pointer)란 포인터처럼 동작하는 클래스 템플릿으로, 사용이 끝난 메모리를 자동으로 해제해 줍니다. 스마트 포인터의 동작 보통 new 키워드를 이용해 기본 포인터(raw pointer)가 실제 메모리를 가리키도록 초기화한 후에, 기본 포인터를 스마트 포인터에 대입하여 사용합니다. 이렇게 정의된 스마트 포인터의 수명이 다하면, 소멸자는 delete 키워드를 사용하여 할당된 메모리를 자동으로..