Make Unreal REAL.
article thumbnail
std::iterator와 std::reverse_iterator
C++/기타 2023. 1. 20. 21:25

반복자는 증감 연산자, 비교 연산자를 지원한다. 순방향 반복자(Forward Iterator) 앞에서 뒤 방향으로 진행한다. 역방향 반복자(Reverse Iterator) 역방향 반복자는 뒤에서 앞 방향으로 진행한다. #include #include using namespace std; void main() { vector v = {1, 2, 3, 4, 5}; for (vector::iterator it = v.begin(); it != v.end(); ++it) cout

article thumbnail
메모리 누수(Memory Leak)
C++/기타 2023. 1. 19. 22:30

메모리 누수란? Heap에 동적 할당된 메모리 공간이 가리키는 포인터 없이 해제되지 않은 채 남겨지는 것 메모리 누수는 다음과 같은 상황에서 발생한다. void print() { int *ptr = new int; *ptr = 1; std::cout

article thumbnail
nullptr과 NULL
C++/기타 2023. 1. 19. 22:20

C++11부터 추가된 nullptr은 NULL과는 다르다. NULL 상수 0과 정확히 동일 nullptr 메모리 주소 0x00000000을 나타낸다. 아래의 예시를 통해 차이를 알 수 있다. void print(int num) { std::cout

article thumbnail
댕글링 포인터(Dangling pointer)
C++/기타 2023. 1. 19. 22:08

댕글링 포인터란? 이미 할당 해제된 메모리를 가리키는 포인터 아래와 같은 상황에서 ptr2가 댕글링 포인터가 된다. void main() { int *ptr1 = new int; int *ptr2 = ptr1; delete ptr1; } 댕글링 포인터로 인한 문제를 방지하는 법 1 // delete 이후 포인터의 값을 nullptr로 설정해준다. void main() { int *ptr1 = new int; *ptr1 = 10; delete ptr1; ptr1 = nullptr; // Null Reference exception *ptr = 5; } 댕글링 포인터로 인한 문제를 방지하는 법 2 // 여러 포인터가 같은 메모리 영역을 가리키지 않도록 한다. void main() { int *ptr1 = n..

검색 태그