【发布时间】:2019-11-26 07:05:06
【问题描述】:
我有一个功能
void myfunction(A**);
还有一个变量
A a;
我正在尝试创建一个指向 a 内联指针的数组
myfunction( {&a} );
然后失败。它说我正在通过A*。如果我写
A *aa[] = {&a};
myfunction( aa );
然后就可以了。
我可以创建A** 内联吗?
【问题讨论】:
-
不,表达式
&a是一个右值,你不能取它的地址。但是,您可以使用A* pa = &a; myfunction(&pa);。 -
话虽如此,您的
myfunction似乎很可疑,为什么它需要指向指针的指针?它用指针做什么?在我们告诉你真正应该通过什么之前,你需要知道这一点。 -
我建议你不要成为一个两星程序员。如果您需要一个指针数组,请使用一个指针数组。如果您需要要修改的指针,请引用指针。 C++ 有一个非常好的类型系统,您可以利用它。
-
@Someprogrammerdude 为什么不是常量指针?
-
如果确实需要处理数组,可以考虑参考
std::vector或std::array作为myFunction的参数。