C++

동적 할당: Dynamic Memory Allocation 우리는 그동안 정적 할당을 통해 메모리를 할당하고 있었습니다. 정적 할당을 통하면, 컴파일을 할 때에 필요한 메모리가 할당되고, 이는 프로그램 종료시까지 변동되지 않습니다. 예를들어, 프로그램 내부에서 어떠한 정수 x를 선언하였다면, 그 변수의 값은 변할 수 있으나 변수에게 할당된 메모리는 끝까지 변하지 않습니다. 그 할당된 메모리는 sizeof 함수로 알 수 있었습니다. 그에 반해 동적할당은 컴파일을 할 때가 아닌, 런타임 도중에 메모리를 할당할 수 있게 해줍니다. 동적 할당을 통해 Heap 영역에 데이터를 할당할 수 있습니다. 즉, 동적 할당은 힙 영역에서 발생합니다. 그리고 그 할당된 값에 대한 접근은 포인터를 통해서만 가능합니다. C++ ..
역참조 (Dereferencing) 모두 알다시피 포인터는 다른 데이터의 주솟값을 저장해놓는 변수입니다. 우리도 주소를 통해서 원하는 위치에 방문합니다. C++에서도 동일합니다. 당연히 포인터의 값으로 원하는 데이터의 주소를 안다면, 그 주소를 통해 해당 위치에 있는 데이터에 접근할 수도 있겠죠? 이것을 우리는 역참조 (Dereferencing) 라고 부릅니다. 그리고 그 방법은 매우 간단합니다. 포인터를 선언할 때, 변수와 다른 부분이 어떤 것이였는지 기억이 나시나요? 변수와는 다르게 포인터의 이름 앞에 asterisk(*) 마크를 붙였습니다. 포인터가 가르키는 값(주소)를 따라가서 있는 위치에 저장된 값을 조회할 때도 동일합니다. 변수명 앞에 *를 붙이기만 하면 됩니다. 선언할 때와 동일한 synta..
C++에서는 & 기호를 통해 데이터의 주소에 접근할 수 있습니다. 값은 16진수 숫자로 반환됩니다. 예시를 보여드리겠습니다. #include using namespace std; int main() { int num{10}; cout
포인터의 선언은 다음과 같은 구조로 진행됩니다. variable_type *pointer_name; asterisk(*)만 없어지면 변수와 동일합니다. 예시 int *int_ptr; double *double_ptr; char *char_ptr; string *string_ptr; 하지만, 중요한 것은 선언과 동시에 초기화를 해 주어야 합니다. 초기화를 하지 않으면 포인터에 쓰레기 주소 데이터가 들어있게 됩니다. 초기화까지 한다면 다음과 같이 됩니다. variable_type *pointer_name {nullptr}; 예시 int *int_ptr {}; double *double_ptr {nullptr}; char *char_ptr {nullptr}; string *string_ptr {nullptr};
Ricky U. Lee
'C++' 카테고리의 글 목록 (8 Page)