pointer

스택 포인터
스택FILO(First In Last Out)형태로 데이터를 액세스하는 데이터 구조이다. 즉, 가장 나중에 들어온 것부터 차례로 액세스하는 것이다. Heap은 Stack과 반대로 FIFO형태로 데이터를 액세스한다. 스택은 한 곳으로만 액세스할 수 있으며, 이부분을 스택의 탑이라고 한다. FILO의 액세스 순서 : 5 → 4 → 3 → 2 → 1FIFO의 액세스 순서 : 1 → 2 → 3 → 4 → 5 중앙처리장치는 기억장치의 특정 영역을 스택 영역으로 지정하여 운영한다. 스택에 저장되는 데이터의 크기는 레지스터의 크기, 데이터 버스의 폭과 같다. 즉 스택은 컴퓨터의 단어(word)단위로 액세스 된다. 만일 기억장치가 바이트 단위로 구성되어 있고 레지스터의 크기가 16 비트이면, 두 개의 기억장소에 한개..

C++ 스마트 포인터 (Smart Pointer)
C++ 프로그램에서 new 키워드를 사용하여 동적으로 할당받은 메모리는, 반드시 delete 키워드를 사용하여 해제해야 하는데, 만약 해제하지 않고 넘어갈 경우에 메모리 누수 (Memory Leak) 문제가 발생해서 프로그램의 안정성을 보장받을 수 없게 된다. 스마트 포인터는 클래스 템플릿으로서 사용이 끝난 메모리를 자동으로 해제해주어 메모리 누수 문제가 일어나지 않도록 해준다. 동작하는 방법은 기본 포인터 (Raw Pointer)가 실제 메모리를 가리키도록 초기화한 후에, 기본 포인터를 스마트 포인터에 대입하여 사용된다. 스마트 포인터의 종류 C++ 11 표준 이전에도 auto_ptr 이라는 스마트 포인터로 작업을 처리했었는데, 현재 모던 C++ 이라 불리우는 C++ 11 이상의 표준에 대해서는 aut..