Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 通过唯一的ptr<;int[]>;函数_Arrays_Function_C++11_Pointers_Unique Ptr - Fatal编程技术网

Arrays 通过唯一的ptr<;int[]>;函数

Arrays 通过唯一的ptr<;int[]>;函数,arrays,function,c++11,pointers,unique-ptr,Arrays,Function,C++11,Pointers,Unique Ptr,我想要什么 std::cout << "newCopy: "; for(int i = 0; i < SIZE + 1; i++) { std::cout << newCopy[i] << ' '; } std::cout 尝试调用printary时(newCopy,SIZE+1)我得到编译器错误无法将参数'1'的'std::unique_ptr'转换为'int*'到'void printary(int*,int)' 这是因为您试图将std::

我想要什么

std::cout << "newCopy: ";
for(int i = 0; i < SIZE + 1; i++)
{
    std::cout << newCopy[i] << ' ';
}
std::cout
尝试调用
printary时(newCopy,SIZE+1)我得到编译器错误
无法将参数'1'的'std::unique_ptr'转换为'int*'到'void printary(int*,int)'

这是因为您试图将
std::unique_ptr
对象传递到一个函数中,该函数需要
int*
。但是
std::unique_ptr
是与
int*
不同的类型,并且不能隐式转换

解决方案:您应该传递一个
int*
。std::unique_ptr
只是裸指针的包装器。如果您查看
std::unique\u ptr
的文档,就会发现它有一个成员函数
std::unique\u ptr::get

返回指向托管对象的指针

std::cout << "newCopy: ";
for(int i = 0; i < SIZE + 1; i++)
{
    std::cout << newCopy[i] << ' ';
}
std::cout << "newCopy: ";
printArray(newCopy, SIZE + 1);