• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

string 타입 데이터 크기

21.02.06 11:22 작성 조회수 4.1k

0

강좌에서 char 타입은 오직 하나의 문자만 들어갈 수 있기에 2바이트라고 설명 주신 거는 이해가 됩니다.

여기서 하나 궁금한게 그럼 string 타입은 문자를 무한대로 집어넣을 수 있는건가요??

만야 그렇게 된다면 string 타입의 크기가 8바이트인지도 궁금합니다.

답변 2

·

답변을 작성해보세요.

0

현준호님의 프로필

현준호

질문자

2021.02.06

단지 정수의 대한 크기가 아닌 문자의 대한 크기를 이해하려면 클래스를 이해해야 하는군요!

아직까진 답변 주신 내용 중 주소의 대해서는 이해가 잘 가진 않지만 점점 더 궁금증이 많아지네요 :)

상세한 답변 감사드립니다!

0

여기서 하나 궁금한게 그럼 string 타입은 문자를 무한대로 집어넣을 수 있는건가요??
=> 네 이론적으로는 그렇습니다.
실제 테스트해보면 OS 환경에 따라 조금 다를 수 있을 것 같네요.

만야 그렇게 된다면 string 타입의 크기가 8바이트인지도 궁금합니다.
=> 이 부분을 이해하려면 class의 개념에 대해 이해하고 있어야 합니다.
요약하면 string의 경우 데이터가 string 자체에 포함되는게 아니라,
실제로 동적할당되어 힙 어딘가에 문자열 데이터가 올라가 있고
string 변수에서는 해당 주소를 가리키는 형태로 되어 있습니다.

string [  주소 ] ->   주소[  문자열길이  문자열데이터["hello world"] ... ]

그러니 string 타입의 크기가 8바이트 << 라는 의미가
정말 string 변수의 크기를 의미하는거라면 부분적으로 맞는 얘기입니다.
(물론 실제 주소를 타고 가서 데이터의 크기까지 합산하면 얘기가 달라지겠죠!)