유니티 부트캠프 8기/Ch02. 프로그래밍 기초(C#)

문자열의 저장방식

Imperor 2025. 2. 7. 12:32

문자열을 배열에 저장할때 직접 저장하지 않고 주소를 저장한다 ★

 

c++에서는

const char* strings[] = {"Hello", "World", "C++"};

 

64bit 기준으로 각 포인터는 8byte이므로 이웃한 주소간의 간격이 8byte이다

실제 문자열은 Heap에 저장되기 때문에 문자열의 길이가 늘어나도(8byte 보다 커져도) 주소침범이 일어나지 않는다

 

 

c#도 비슷하다

string[] arr = new string[] { "Hello", "World", "C#" };

 

string은 참조타입이므로 실제 문자열은 Heap에 저장되며, 배열에는 참조를 저장한다

이웃한 주소의 크기는 마찬가지로 똑같으며 64bit 기준으로 8byte이다

실제 문자열은 Heap에 저장되기 때문에 문자열의 길이가 늘어나도(8byte 보다 커져도) 주소침범이 일어나지 않는다