구조
포인터, 길이 ,용량으로 구성되어 있다.
길이가 용량보다 커지면 용량을 크게 증가시킨 후 용량에 길이를 복사를 한다.
- heap 메모리 할당은 느림
- 메모리 단편화 문제
- 내부 버퍼 증가는 멀티쓰레드 환경에서 안전하지 않을 수도 있다.
- 그래서, 여전히 sprintf와 함께 char[]를 매우 많이 사용한다.
heap 메모리의 한계
연속된 메모리를 사용하면 메모리에 구멍이 생긴다.
해결방법
- 메모리압축 (Compaction) 운영체제 또는 메모리 관리 시스템이 흩어진 메모리 조각을 하나로 모아 연속된 메모리 공간을 확보한다.
- 메모리 재할당
- ssd 스왑을 사용
- 가상 메모리와 페이징 활용 운영체제가 가상메모리 시스템을 사용하는 경우, 페이징(Paging) 기술을 통해 연속된 논리 메모리 주소를 물리적으로 흩어진 메모리에 매핑할 수 있다.