인프런 커뮤니티 질문&답변
강사님 벡터 capacity 메모리 관점 질문입니다
해결된 질문
작성
·
125
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
벡터의 capacity가 늘어날때마다 기존의 데이터를 재할당시킨다는 것은
조사식을 통해 &v[0]의 주소값이 변하는 걸로 확인했습니다.
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
벡터의 capacity가 늘어날때마다 기존의 데이터를 재할당시킨다는 것은
조사식을 통해 &v[0]의 주소값이 변하는 걸로 확인했습니다.
여기서 질문입니다.
1. 벡터의 capacity 늘릴때 뒷부분에 의미없는 데이터 공간이 있어서 여유 공간이 있으면
재할당 안하고 원래 있던 위치에서 더 확장하는 방식도 있나요?
(제가 디버깅할땐 해당 메모리주소값이 다 변했습니다)
재할당 안하고 원래 있던 위치에서 더 확장하는 방식도 있나요?
(제가 디버깅할땐 해당 메모리주소값이 다 변했습니다)
2. vector<int> v; 선언했을때
&v랑 &v[0]랑 주소값이 왜 다른건가요?
&v랑 &v[0]랑 주소값이 왜 다른건가요?
답변 1
0
Rookiss
지식공유자
1.
의미없는 데이터 공간이라는게 뒷부분이 메모리 할당이 안된 상황을 말씀하시는거라면
가능성이 있지만 이는 C++ 표준에서 어떻게 하라 명시되는 부분이 아니니 vector구현마다 다를 수 있습니다.
2.
&v는 vector v 변수 자체의 주소고
&v[0]는 [동적할당된 데이터들 중 첫번째 데이터의 주소]니 엄연히 다릅니다.




