【发布时间】:2024-05-01 10:00:02
【问题描述】:
谁能解释以下代码的工作原理以及不会使应用程序崩溃吗?
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*分配的内存?
【问题讨论】:
标签: c++ arrays memory-management stringstream istringstream