5
과 파생 클래스에서 모두 작동하는 메모리 풀을 갖는 일반적인 알고리즘 또는 구현이 있습니까? 특정 클래스 A에 대해서만 O (1)에서 작동하는 메모리 풀을 만드는 것은 매우 쉽습니다. 예를 들어, 큰 덩어리 인 데이터를 할당하고, 즉 10*sizeof(A)
을 할당 한 다음 할당이 필요할 때마다 sizeof(A)
크기의 1 블록을 제공합니다.클래스 및 그 파생 클래스에 대한 C++ 메모리 풀
더 큰 크기를 가진 A의 파생 클래스를 고려할 때 이러한 간단한 구현이 있습니까? 감사합니다.
왜 구체적인 메모리 풀이 필요합니까? 포인터를 저장하고 힙을 사용할 수 없습니까? – Jack
그것은 연산자 new 및 operator delete에 대한 연습을위한 이론적 인 질문 일뿐입니다. – lezebulon
내가 생각할 수있는 유일한 접근 방법은 큰 관리 문제 (구멍과 메모리 덩어리 내부의 모든 것)를 만드는 것이 단계 크기로 사용하는 것입니다 계층 트리에서 가장 큰 클래스의 크기. 클래스가 근본적으로 다르지 않으면 많은 공간을 낭비하지 않습니다. – Jack