2016-03-07 122 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

我不太明白這個答案,但我可能誤解了這個問題,因爲我無法重現該問題。 –