가능한 중복 반환 내가 포인터를 사용하여 C 스타일 배열을 선언 한
Can a local variable’s memory be accessed outside its scope?C 스타일의 문자는 잘못된 결과를
, 그리고 그것을 함수에서 반환 값을 할당 . 위의 후
1. const char* str = chArr->readString();
오른쪽, 나는 다음과 같은 STR를 법원하려면 :
2. cout << "pointer to char is = " << str <<endl;
을하고 readString
은 다음과 같습니다
char* CharArray::readString()
{
std::cout << "Insert a string of max 19 length:" <<std::endl;
char string[20];
std::cin.getline(string,20,'\n');
return string;
}
내가 넣을 때 두 번째 줄에 중단 점, 나는 str
값으로 올바른 결과를 볼 수 있습니다. .. 는하지만 콘솔 창에 아무것도 표시하지 않으며, 2 단계, 나는 str
값을보고 통과 한 후, 그것은 "P÷7
"또는 "äû:
"같은 것을 보여줍니다
이 STR에 대한 그 말을 어쩌면 가치 I 문자열 길이 4,5. str의 길이에도 불구하고 19 아닙니다.
'const char * str'은 const 포인터가 아닙니다 **입니다. 그것은 const'char'에 대한 가변 포인터입니다. –