我有哪裏指針到一個結構數組聲明傳遞指針數組到結構到功能
void functionA(argument1, argument2) {
...
struct1 *point[2];
...
functionB(*point, ...) // Call the function ?
}
// Declare the function ?
void functionB(struct1 *point[], ...) {
}
的功能,我需要這個數組*point[2]
傳遞給另一個函數說functionB,我需要以一些基於point[0]
和point[1]
的操作,這樣做的正確方法是什麼?
當我打電話functionA
的functionB
像functionB(*point, ...)
,我得到不兼容的指針類型的,而當我調用它像functionB(*point[], ...)
我得到的錯誤,以前預期表達]
令牌錯誤。
你試過了functionB(point)嗎? –
我建議你在'functionB'的參數聲明中替換'struct1 * point []',並用'struct1 ** point'替換爲**而不是**在函數內執行'sizeof(point)'這樣的錯誤,因爲這將無法正常工作。你可以傳遞一個數組作爲參數,然而它會被「表示(不記得正確的術語)」到被調用函數中的指針(指向第一個數組項)。如果你在一個函數中聲明一個數組,你可以在該範圍內的數組上做'sizeof'。這就是爲什麼它可能會產生誤導。 – Jite
@Jite沒有理由在這裏使用指針指針。 – Lundin