제가 나름대로 쓰는 자료구조가 있습니다.
Linked list이긴 한데, 메로리를 잡고 푸는 링크드 리스트가 아니라 '배열'로부터 메모리를 가져오고, 푸는 방식입니다.
게임의 특성상,
객체의 생성과 삭제가 빈번하고,
객체의 수가 어느정도 한계가 있기에(스타의 인구수 200처럼)
위와 같은 자료구조를 썼습니다.
생성과 삭제가 빈번한데, 그때마다 new/delete (malloc/free) 하다간, 괜히 시간을 잡아먹고 memory fragmentation도 일어날거 같기에,
'배열'로 미리 메모리 잡아두고 여기서 꺼내쓰려는 것입니다.
뭐, 메모리 릭 방지에도 나름 효과가 있구요.
그래서 쓰긴 하는데, 이게 유효하긴 한가, 즉 제가 생각하는 장점이 있긴 한가, 하는 의문이 들더라구요.
만약 이 방식이 장점이 있다면 다른데서 쓸거 같기는 한데, 제대로 언급한 곳도 없고, 물어볼만한 사람도 없어서 질문합니다.
이런 방식의 자료구조를 많이들 쓰나요?
보통은 new/delete를 오버로딩 해서 말씀하신 배열에서 메모리를 배분(?)해주는 형태로 많이 사용되지요.
게임 종료시점에 그 대형(?) 배열을 지우면 new/delete로 인한 메모리 릭은 없는셈 쳐도 되겠지요 ;;
뭐 사실 정말 중요한 릭은 런타임에 발생하는 릭이긴 하지만.. 그래도 그게 어딥니까? ^^;;
관련된 내용이 GPG어딘가에서 본거 같은데.. 맞나 모르겠네요 ^^;;