我曾经在我的 C++ 项目中使用 new 分配内存
char* buffer = new char [size];
...
delete[] buffer;
我真的很想继续使用 unique_ptr
, 像这样
unique_ptr<char[]>buffer(new char[size]);
然后我使用 istream& get (char* s, streamsize n);
这需要 char*
作为第一个参数,那我该怎么办?我试过转换类型,但失败了。我也知道我可以使用 vector<char>
而不是指针,但我真的不喜欢使用它。谢谢!
最佳答案
类 std::unique_ptr
有一个名为 get()
的方法来访问底层指针:使用它。
unique_ptr<char[]> buffer(new char[size]);
...
myIstream.get(buffer.get(), n);
关于c++ - unique_ptr 到 char* 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37875781/