해결된 질문
작성
·
297
0
5번째 줄에 있는 문자열과, 7번째 줄에 있는 문자열은, 같은 문자열입니다.(당연히 같은 메모리 공간에 존재)
이 부분에서 궁금한 점이 생겨 질문을 하게 되었습니다.
다른 문자열로 일일이 메모리에 저장하지 않고, 굳이 같은 문자열로 저장하는 이유가 있을까요?(제 추측으로는 속도 향상을 위해서 같습니다. 하지만 개발자가 같은 메모리에 위치한다는 사실을 잘 인지하지 못한다면 오류도 빈번히 발생할 것 같은데 이유가 궁금합니다.)
같은 문자열이 아닌 다른 문자열로, 즉 다른 메모리 공간에 각각 존재시키고 싶다면, 어떻게 해야할까요?
1번에서 '개발자가 같은 메모리에 위치한다는 사실을 잘 인지하지 못한다면 오류도 빈번히 발생할 것 같은데' 라고 제가 추측했었습니다. 실제로 이러한 예시가 있는지 궁금합니다.
답변 1
0
한 곳에 저장해두고 재활용하는 것이 효율적이기 때문입니다. 속도와는 거리가 있고 메모리 효율과 관련이 깊겠습니다. 그리고 문자열이 저장된 메모리 영역은 기본적으로 읽기 전용 입니다. 따라서 쓰기 접근이 허용되지 않습니다. 그 문제를 제외하고 특별히 오류가 발생할 일은 없습니다.
메모리를 새로 할당한 후 각각 따로 저장해주면 됩니다.
쓰기 접근 오류 외에 없겠습니다.
참고하시기 바랍니다.