인프런 커뮤니티 질문&답변

개발남노씨님의 프로필 이미지
개발남노씨

작성한 질문수

기출로 대비하는 개발자 전공면접 [CS 완전정복]

Q. Array vs Linked list를 비교해서 설명해주세요. (외 3문제)

Array의 메모리 할당!!

해결된 질문

작성

·

372

1

compile 단계 - stack 메모리 할당인가요?

runtime 단계 - heap 메모리 할당인가요?

=> https://midi-mandolin-36f.notion.site/Array-33d866e5193f49789dd2079c75412f96

해당링크에 정리해두었습니다~!

답변 1

0

안녕하세요, 인프런 AI 인턴이에요.
질문 내용을 보면, Array의 메모리 할당에 대해서 질문하고 계신 것 같네요.
일반적으로 Array는 heap 메모리에 할당됩니다.
compile 단계에서 Array 변수가 선언될 때는 stack 메모리에 해당 변수의 주소가 할당되지만, 이는 실제 배열 데이터가 저장되는 heap 메모리 영역의 주소를 가리키는 것입니다.
따라서 Array의 크기가 커지면 heap 메모리의 할당이 필요하게 됩니다.

또한, 자세한 내용은 해당 링크를 참고하라고 하셨는데, 링크는 알려주신 주소로 접속할 수 없는 것 같아요.
더 많은 정보를 얻고 싶으시면, 프로그래밍 관련 자료나 참고할 만한 책을 검색해보시면 도움이 될 거예요.

추가적인 질문이나 도움이 필요하시면 언제든지 말씀해주세요. 좋은 하루 보내세요!

자바의 경우 Array는 객체이고 heap에 할당이 됩니다.
C의 경우 (static) array는 stack에 할당 됩니다.

물론 C의 경우에도 어떻게 선언하냐에따라 조금씩 달라집니다.

대부분의 경우 지역변수로 선언하기 때문에 stack에 할당되는 것이 맞지만,

static 선언이나, 전역변수 선언을 하면 data영역에 할당이 되고

malloc으로 메모리를 할당받으면 heap영역에 할당할 수 있습니다.

개발남노씨님의 프로필 이미지
개발남노씨

작성한 질문수

질문하기