在免费商店上分配内存,并一次性复制字符串:
std::string s("abcdef");
...
char* chars=strdup(s.c_str());
Run Code Online (Sandbox Code Playgroud)
当然,您需要手动释放内存.文档,例如在手册页上.正如@Loki所提到的:释放这些记忆是通过free(chars)而不是通过delete.此外,您还需要包含<cstring>标题.
如果你想留在c ++世界,请使用vector; 它可以用两个迭代器创建,从中复制数据,并在堆上分配,并自行清理.这不是一种享受吗?
std::vector<char> vec( s.begin(), s.end() );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1434 次 |
| 最近记录: |