요소가 객체에 대한 포인터 인 벡터를 어떻게 처리합니까? 내 구체적인 질문은 아래에 제공된 코드의 끝에 주석입니다. 감사.개체에 대한 포인터 벡터 - 메모리 누수를 피하는 방법?
0
A
답변
7
예, 메모리 누수를 방지하려면이 작업을 수행해야합니다. 더 나은 방법은 객체가있는 경우 (boost, C++ TR1, C++ 0X) 공유 포인터의 벡터를하게되는 독특한 포인터의
std::vector<std::tr1::shared_ptr<A> > l;
또는 벡터 (C + +0)을 수행하는 실제로 이 컨테이너와 뭔가 다른
std::vector<std::unique_ptr<A>> l;
또는 사용 부스트 사이을 공유 pointer containers
boost::ptr_vector<A> l;
PS : A의 V를 잊지 마세요 @Neil Butterworth에 따라 가상 소멸자!
5
shared_ptr 또는 이와 유사한 스마트 포인터의 배열을 사용하십시오. 그리고이 코드가 제대로 작동하려면 기본 클래스에 가상 소멸자가 있어야합니다.
0
가장 좋은 방법은 스마트 포인터 (Boost shared_ptr)를 사용하여 이런 종류의 문제를 방지하는 것입니다. 하지만 원시 포인터가 필요한 경우이 방법을 사용한다고 생각합니다.
관련 문제
- 1. Java 메모리 최적화 (메모리 누수를 피하는 방법 - 구체적인 예)
- 2. Scala-Actors, 메모리 누수를 피하는 것이 좋습니다.
- 3. dijits로 인한 메모리 누수를 피하는 방법은 무엇입니까?
- 4. 개체에 대한 C++ 포인터
- 5. C++에서 개체에 대한 포인터
- 6. 포인터 포인터 메모리 할당에 대한 포인터
- 7. 안드로이드에서 메모리 누수를 식별하는 방법?
- 8. COM 메모리 누수를 추적하는 방법
- 9. Java 메모리 누수를 찾는 방법
- 10. 개체에 대한 포인터 벡터에서 참조 해제
- 11. 메모리 낭비를 피하는 방법
- 12. 새 SDH 3.2 메모리 누수를 감지하는 방법?
- 13. 연산자 오버로드 및 개체에 대한 포인터, C++
- 14. 인스트루먼트는 메모리 누수를 지적합니다!
- 15. SiftDescriptorExtractor가 메모리 누수를 일으킴
- 16. WPF에서 메모리 누수를 추적하십시오
- 17. .NET에서 관리되지 않는 메모리 누수를 조사하는 방법?
- 18. PHP 메모리 부족을 피하는 방법?
- 19. NSString 관련 메모리 누수를 제거하는 방법?
- 20. C++ 벡터 포인터
- 21. CompileAssemblyFromSource가 메모리 누수를 방지하려면 어떻게합니까?
- 22. Ruby 1.9에서 메모리 누수를 추적하십시오.
- 23. 메모리 누수를 처리하는 방법은 무엇입니까?
- 24. Ruby 스크립트에서 메모리 누수를 추적하십시오.
- 25. 메모리 누수를 막을 수 없습니다
- 26. CGBitmapContext 메모리 누수를 생성 하시겠습니까?
- 27. FastMM이 메모리 누수를 감지하지 못합니다.
- 28. SmtpClient.Send가 메모리 누수를 초래 함
- 29. 메모리 누수를 일으키는 WCF 호출
- 30. C++의 포인터 대 벡터 삭제하기
+1 부스트 포인터 컨테이너의 경우 C++ 0x unique_ptr – rubenvb
+1입니다. –
안녕하세요. 저는 shared_ptr을 가지고있는 VS2010을 사용하고 있습니다. 내가 볼 수있는 예가 있습니까? --thx – q0987