게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
윈도우os의 Heap 할당에 대해 질문드려요.
게시물ID : programmer_22972짧은주소 복사하기
작성자 : 환돌
추천 : 0
조회수 : 1157회
댓글수 : 7개
등록시간 : 2019/08/19 16:29:27
간단하게 설명하자면...

함수 내부에 반복문이 있고, 반복문 안에는 filePath를 string으로 만들어서 다른 함수에 filePath를 넘기는 형태로 구현이 되어있어요.

void functionAAA
{
for ( size_t i = 0; i < count; ++i )
{
std::string filePath = ~~~~~
if ( doSomthing( filePath, ..., ..., ... ) )
{
...
}
}
}

이런 형태로 구현되어있을 경우 filePath는 std::string이기 때문에
filePath변수 자체는 stack에 std::string내부의 문자열은 heap에 alloc이 될 텐데
반복문을 돌 때마다 filePath의 c_str() 포인터가 높은 확률로 같은곳을 가리키고 있네요.
왜 이렇게 동작하게 되는지 윈도우os의 Heap alloc이 어떤 내부동작을 통해 이뤄지는지 설명해주실 수 있는 분 있을까요?
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호