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

조승호님의 프로필 이미지

작성한 질문수

독하게 되새기는 C 프로그래밍

1강-문자(배)열 상수는 어디에 저장되는가? 관련 질문

해결된 질문

23.07.28 21:51 작성

·

291

0

5번째 줄에 있는 문자열과, 7번째 줄에 있는 문자열은, 같은 문자열입니다.(당연히 같은 메모리 공간에 존재)

이 부분에서 궁금한 점이 생겨 질문을 하게 되었습니다.

 

  1. 다른 문자열로 일일이 메모리에 저장하지 않고, 굳이 같은 문자열로 저장하는 이유가 있을까요?(제 추측으로는 속도 향상을 위해서 같습니다. 하지만 개발자가 같은 메모리에 위치한다는 사실을 잘 인지하지 못한다면 오류도 빈번히 발생할 것 같은데 이유가 궁금합니다.)

     

  2. 같은 문자열이 아닌 다른 문자열로, 즉 다른 메모리 공간에 각각 존재시키고 싶다면, 어떻게 해야할까요?

     

  3. 1번에서 '개발자가 같은 메모리에 위치한다는 사실을 잘 인지하지 못한다면 오류도 빈번히 발생할 것 같은데' 라고 제가 추측했었습니다. 실제로 이러한 예시가 있는지 궁금합니다.

     

답변 1

0

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

2023. 07. 29. 19:46

  1. 한 곳에 저장해두고 재활용하는 것이 효율적이기 때문입니다. 속도와는 거리가 있고 메모리 효율과 관련이 깊겠습니다. 그리고 문자열이 저장된 메모리 영역은 기본적으로 읽기 전용 입니다. 따라서 쓰기 접근이 허용되지 않습니다. 그 문제를 제외하고 특별히 오류가 발생할 일은 없습니다.

  2. 메모리를 새로 할당한 후 각각 따로 저장해주면 됩니다.

  3. 쓰기 접근 오류 외에 없겠습니다.

참고하시기 바랍니다.