【发布时间】:2019-06-09 11:10:33
【问题描述】:
我是 C++ 新手,遇到了这个问题,这是我的代码:
shared_ptr<char[]>var(new char[20]);
char *varptr = *(var.get());
所以我正在创建 char 数组的智能指针。
我遇到的问题是在编译过程中它给了我错误提示:
cannot convert argument 1 from 'char *' to 'char(*)[]'
正如shared_ptr::get 的声明所说T* get() const noexcept; 它返回模板的指针,在我的例子中是指向char[] 的指针。取消引用它应该给我char[] 并将它分配给char* 应该没问题。
我好像遗漏了什么,不知道是什么。
char* 和 char(*)[] 有什么区别? char(*)[] 不只是 char 数组的指针吗?不应该把它分配给char* 可以吗?
【问题讨论】:
标签: c++ pointers smart-pointers