
c++은 포인터를 사용한 후에 메모리를 해제해줘야 합니다. 하지만 c++11의 스마트 포인터라고 불리는 shared_ptr은 포인터와 같이 동작하면서, 사용이 끝난 메모리를 자동으로 해제해줍니다. 헤더파일로 memory를 추가해줘야 합니다.
예시코드
#include <iostream>
#include <memory>
using namespace std;
int main() {
using myIntPtr = shared_ptr<int>;
myIntPtr p1 = make_shared<int>(123);
auto p2 = make_shared<int>(456);
cout << *p1 << endl;
cout << *p2 << endl;
return 0;
}
출력
123
456
메모리 할당에 사용된 make_shared는 new 키워드를 사용하는 것보다 예외로부터 안전하기 때문에 사용하길 권장합니다.
자세한 설명은 레퍼런스링크