• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

main()에서 Person을 이용하여 구조체타입 변수 생성시 메모리와 관련하여 궁금한 것

20.10.16 14:49 작성 조회수 412

2

Person me;

Person mom;

Person dad;

질문1. main() 에서 이렇게 구조체타입 변수를 생성할 때에

각 변수마다 (me, mom, dad) 메모리에 공간이 각각 48 byte 만큼 할당되어

총 144 byte의 공간이 사용할 수 있도록 생성된 것 인가요?

질문2. 위처럼 main 에서 구조체타입 변수를 여러개 생성했을때

struct 구조체가 복사되어 사용할 수 있게 되는 방식인가요?

아니면 구조체 하나를 생성하고 그 구조체에 접근하여 사용할 수 있게 되는 방식인가요?

그림으로 그려보았을 때에 어떤 것이 가까운지 알려주세요.

(1) 각 변수가 하나의 구조체에 접근하는 방식

(2) 각 변수마다 하나의 구조체를 갖게 되는 방식 (복사)

답변 2

·

답변을 작성해보세요.

3

Hello Yeo님의 프로필

Hello Yeo

2020.10.17

안녕하세요?

1. 생각하시는 것이 맞습니다.

2. 어떻게 구현되는가? 대해서는 저는 아직 크게 걱정하지 않아도 좋다는 입장입니다만..
구조체의 경우에 배열과 비슷하게 생각하면 도움이 됩니다.
예를 들어, Person의 경우에 me라는 변수를 만들면 me의 첫번째 주소를 기억해둡니다.
me의 weight에 접근하고 싶다면 height의 크기만큼 첫번째 주소에 더하여 접근하는 방식입니다.
padding에 따라서 달라질 수 있지만, padding에 대해서는 강의에서 한 번 들었던 기억이 있으니 곧 듣게 되실 것이라 생각되네요.

그리고... 사진도 좋지만 제가 바로 실행할 수 있도록 코드를 올려주시는 편이, 강의의 어느 부분인지 표시해주시는 것이 제가 답변드리는 것에 도움이 됩니다.

1

DoJin님의 프로필

DoJin

질문자

2020.10.17

감사합니다! 참고하겠습니다!