2016-03-07 101 views
-2

所以试图制作一个指向对象的指针数组并将其传递给一个函数,但得到错误。 我已经声明了一个数组。具有使用指针数组作为函数的参数

shapes *myArray[2]; 

函数

void addShape(shapes *myArray[]); 

传递数组

addShape(myArray); 

心不是工作。错误:类型“int *”的参数与类型“int **”的参数不兼容。

在这里做什么?

+0

你是百万分之一的人#2不知道为什么数组不能按值传递给函数。如果我将**确切的问题标题**并粘贴到Google搜索文本字段中,那么第一个匹配会将我带到一个Stackoverflow问题,它可以回答您所问的所有问题。 –

+0

[无法重现](http://coliru.stacked-crooked.com/a/f9205d0ec675c1b3)。请发布[mcve]。 –

+0

[指针数组作为函数参数]可能的重复(http://stackoverflow.com/questions/1719051/array-of-pointers-as-function-parameter) – Oden

回答

2

应该

void addShape(shapes* (&myArray)[2]); 

更直观与std::array<shapes*, 2>std::vector<shape*>

+0

如果你解释什么是“形状* myArray []'意味着作为一个函数参数:-) – juanchopanza

+0

这是一个任务,我应该创建一个指针数组。以及将形状添加到该阵列的功能 – Shamiso

+0

我不太明白这个答案,但我可能误解了这个问题,因为我无法重现该问题。 –