所以試圖製作一個指向對象的指針數組並將其傳遞給一個函數,但得到錯誤。 我已經聲明瞭一個數組。具有使用指針數組作爲函數的參數
shapes *myArray[2];
函數
void addShape(shapes *myArray[]);
傳遞數組
addShape(myArray);
心不是工作。錯誤:類型「int *」的參數與類型「int **」的參數不兼容。
在這裏做什麼?
所以試圖製作一個指向對象的指針數組並將其傳遞給一個函數,但得到錯誤。 我已經聲明瞭一個數組。具有使用指針數組作爲函數的參數
shapes *myArray[2];
函數
void addShape(shapes *myArray[]);
傳遞數組
addShape(myArray);
心不是工作。錯誤:類型「int *」的參數與類型「int **」的參數不兼容。
在這裏做什麼?
應該
void addShape(shapes* (&myArray)[2]);
更直觀與std::array<shapes*, 2>
std::vector<shape*>
的
如果你解釋什麼是「形狀* myArray []'意味着作爲一個函數參數:-) – juanchopanza
這是一個任務,我應該創建一個指針數組。以及將形狀添加到該陣列的功能 – Shamiso
我不太明白這個答案,但我可能誤解了這個問題,因爲我無法重現該問題。 –
你是百萬分之一的人#2不知道爲什麼數組不能按值傳遞給函數。如果我將**確切的問題標題**並粘貼到Google搜索文本字段中,那麼第一個匹配會將我帶到一個Stackoverflow問題,它可以回答您所問的所有問題。 –
[無法重現](http://coliru.stacked-crooked.com/a/f9205d0ec675c1b3)。請發佈[mcve]。 –
[指針數組作爲函數參數]可能的重複(http://stackoverflow.com/questions/1719051/array-of-pointers-as-function-parameter) – Oden