c++ - unique_ptr 到 char* 的转换

标签 c++ pointers unique-ptr

我曾经在我的 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/

相关文章:

c++ - vector 中的自动指针(智能)

c++ - std::bind 通常与仅移动类型一起使用,特别是 std::unique_ptr 吗?

c++ - 如何修复此错误 'no matching function for call' ?

c++ - 为什么我的子类不继承父类的字符串?

C++ 不同的 minmax 实现

c++ - 宏的 if 语句中的变量初始化

c++ - boost::ptr_vector 排序函数

c++ - 从类中返回一个指针

c - 从c中的文件填充指针数组

c++ - 在 C++ 中将指针传递给类