谁能解释以下代码如何工作并且不会使应用程序崩溃?
int main() {
char *tempStr = new char[5];
tempStr[0] = '\0';
string stemp = "helloworld";
stringstream sstream;
sstream.str(stemp);
cout << "len before = " << strlen(tempStr);
sstream >> tempStr;
cout << "len after = " << strlen(tempStr) << endl;
cout << tempStr << endl;
delete[] tempStr;
return 1;
}
我得到的输出为
len before = 0
len after = 10
helloworld
- 是否
stringstream
为 char 指针中的额外字符分配内存? - 还想知道将数据从
stringstream
char* 数组复制到不超过分配的内存的正确方法char*
?