• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

10분 즘에 나오는 메모리 할당에 대해서 궁금한게 있습니다.

21.01.26 16:08 작성 조회수 168

0

obj.x 가 3으로 5003번 메모리에 할당되어 있고

obj.arr이 새로운 메모리를 사용하는것이 아니라 obj.x 가 할당된 5003번을 그대로 참조하게 될때

obj.x를 3에서 5로 바꿔서 할당하게 되면 (obj.x=5;) arr도 참조값이 같이 바뀌어서 console.log(obj.arr)할때 [5,4]가 되어야 할것같은데 그렇게 되지 않고 이전과 동일하게 [3, 4] 로 콘솔에 출력되더라구요 그렇다면

obj.x=5 라고 새로 할당하게 되면 5007쯤 되는 메모리에 다시 5라는 값을 넣어주고 7103의 값을 5007로 바꿔주게 되는 건가요? 

답변 1

답변을 작성해보세요.

1

맞습니다.

obj.x = 5 라는 명령은
5003번에 저장된 숫자 3 대신 5를 덮어씌우는 게 아니라
새로운 메모리 공간을 확보하여(5007) 5를 대입하고 이를 할당합니다.

그러니까 obj.x는 5007을 바라보게 되고,
obj.arr[0]은 그대로 5003을 바라보고 있는 상태입니다.