필자는 문자열 배열을 가지고 있으며 각 구성 문자열의 길이를 알고 싶습니다. 모든 문자열은 길이가 다르지만 컴파일러는 모두 동일한 크기로 표시합니다. 누구나 왜 그런 일이 일어날 수 있는지 설명 할 수 있습니까? 다음은 코드입니다 :C++에서 문자열 배열의 각 문자열이 같은 크기를 갖는 이유는 무엇입니까?
string arr[] = {"ACACACZCZCZC", "LOQWABCB", "PTUTCFEBC"};
int n = sizeof(arr)/sizeof(arr[0]);
cout<<"number of strings is "<<n<<endl;
cout<<"individual size of strings: str1 = "<<sizeof(arr[0])<<", str2 = "<<sizeof(arr[1])<<", str3 = "<<sizeof(arr[2])<<endl;
이는 8
실제로 각 문자열의 문자 수를 초과하는 경우'arr [0] .length()'또는'arr [0] .size()를 사용하지 않겠습니까? – CoryKramer
당신은 또한 [strlen()] (http://www.cplusplus.com/reference/cstring/strlen/)을 사용할 수 있습니다. –
@CoryKramer 시도해 보았지만 이제는 가변 길이를 보여줍니다. 감사. 그런데 왜 모든 문자열이 같은 공간을 차지합니까? (8 바이트). 큰 문자열이 더 많은 공간을 차지해야하지 않습니까? 어떤 아이디어가 여기에 ?? –