간단한 로직을 따르는 메모리 풀 구현을 만들 수 있습니까?C++의 메모리 풀에 대한 질의
1 - n 바이트의 메모리 풀을 할당합니다.
2 - 수정 된 new(); 메모리를 할당하지 않는 함수/연산자는 메모리 풀의 시작 부분에 대한 포인터 만 가져옵니다. 이 방법으로 객체는 오버 헤드없이 동적으로 생성됩니다.
3 - 메모리 풀은 낮은 실행되면, 그것은 왼쪽과 새로운 메모리 풀
4 할당 무엇 할당을 취소 -에 따라 메모리를 데리러 남아있는 최초의 메모리 풀에서 만든 객체를 자신의 크기. 첫 번째 풀에 할당 된 내용과 부족한 상태로 되돌아온 내용은 삭제시 개체에 의해 복원됩니다.
내 걱정은 내가 할당 된 것보다 작은 메모리 풀을 삭제하는 방법을 모른다는 사실에 주로 관한 것이고, 메모리 풀 개체의 끝에 남아있는 것 외에 OS 헤더도 있습니다. 풀에 할당 된 첫 번째 객체 앞에있는 메모리 풀의 경우 어떤 메모리가 유출되지 않았는지 확인하기 위해 어떤 접근 방식이 필요합니까? 과도한 메모리 풀을 삭제해도 할당 된 객체가 삭제되지 않으며 메모리 풀 조각의 헤더가 안전하게 제거된다는 점.
감사합니다.
EDIT : 메모리 풀로 메모리를 할당하고 수명이 다른 개체에 의해 메모리가 할당되도록하려는 의도입니다. 이것이 가능하다면 ...
할당 한 것 이외의 다른 것을 할당 해제 할 수 없습니다. 그것이 완전히 사용되지 않을 때까지 그냥 오래된 경기장을 떠나십시오. –
태그가 "C"인 이유는 무엇입니까? "C"에는 "new()"함수가 없으며이 문제에서 C++과 완전히 다릅니다. –
Point (3)은 모든 포인터를 풀로 무효화합니다. –