尝试将指针数组传递给方法并返回它

Mar*_*nos 1 c++ pointers

我在使用以下代码时出现问题,这会导致语法错误.我试图将一个指针数组传递给一个方法,并在最后返回它.为什么这不起作用?

struct N {
    static inline int*[] eval(int*[] p){
        return p;
    };
};
Run Code Online (Sandbox Code Playgroud)

为什么我不能用它来返回或使用这种类型?

谢谢

0x4*_*2D2 5

您无法从函数返回数组.但是可以使用指针语法:

static inline int** eval(...)
Run Code Online (Sandbox Code Playgroud)

而且,p在签名中是错误的地方.它应该放在*之前和之后[].

static inline int** eval(int* p[] )
{
    return p;
};
Run Code Online (Sandbox Code Playgroud)

但是,当你可以简单地使用以下向量时,为什么要解决所有这些麻烦unique_ptr:

std::vector<std::unique_ptr<int>> eval(std::vector<std::unique_ptr<int>> const& p)
{
    return p;
}
Run Code Online (Sandbox Code Playgroud)