C++返回一个void指针数组

Aly*_*Aly 1 c++ void-pointers

可能重复:
C++从函数返回数组

我试图声明一个返回void指针数组的函数.我有以下代码:

void *[] get_functions();
Run Code Online (Sandbox Code Playgroud)

但是我得到了编译错误: expected unqualified-id before '[' token

我正在尝试做什么有效,如果是这样,我的语法错误是什么?

编辑 在回复一些注释时,我试图返回一个函数的数组(现在可能是一个向量),然后我可以随机选择一个并调用它.你会建议什么而不是void *

编辑2 返回的函数类型将有一个固定的签名(尚未确定),让我们为参数说明签名将是int f(int i,int j)我的get_functions函数返回的样子是什么,或者vector<void*>仍然是适当?

Jer*_*fin 7

C++不允许函数返回数组.你可能应该返回一个向量:

std::vector<void *> get_functions();
Run Code Online (Sandbox Code Playgroud)

  • @Dasaru:使用`std :: vector`而不是自己处理所有工作的所有常见优点.基本上,如果使用void**,则可能需要动态分配数据.这意味着调用者需要释放数据.在没有RAII包装器的情况下使其异常安全是最困难的.底线:动态分配是导致问题的主要原因之一.自动化它是C++的主要优势之一. (4认同)
  • 接下来,摆脱虚拟指针. (3认同)