내 프로그램에서 문자열의 크기를 얻으려고하므로 나중에 루프를 사용하여 char로 변환 할 수 있지만 프로그램이 리턴하는 크기는 5입니다. 실제 크기보다 작은 숫자. 왜 이런 일이 일어날까요?C++ sizeof() 올바른 크기를 반환하지 않습니다
theFileName = "C : \ 사용자 \ 빈센트 \ 바탕 화면 \ untitled.txt가"
을 그리고이 크기 :
std::string theFileName = fileNames[ curTab ];
int size = sizeof(theFileName);
내 프로그램을 디버깅, 그것은이 theFileName에 저장
크기 = 32
파일 이름의 문자 수를 계산하면 실제로 37이됩니다.이 문제의 원인은 무엇입니까? MS Visual C++ 2010 Express를 사용하여 메모장 프로그램을 만듭니다.
'크기'기능을 사용하십시오. 'sizeof'가 무엇을하는지보십시오. – chris
@Vince : 처음에 그 목적으로'sizeof'를 사용할 수 있다고 생각하게 된 이유는 무엇입니까? 'sizeof'의 스펙을 읽었습니까? 아니면 "sizeof"가 "옳은 것"이라고 결정 했습니까? – AnT
왜 내가 그렇게 생각하는지 모르겠습니다. 나는 그것을 위해 스펙을 찾지 않았다고 생각한다. 나는 이것을 바보처럼 보이게해야한다 : P – Vince