我宣佈我的數組是這樣的:防止陣列從* [N]衰減到**
FT_Interface<4096> *to_make_ft[3] = { /* initialization with existing objects */ };
我的接口聲明如下:
template<cyg_ucount32 S, int N>
class FT_Thread {
FT_Thread(FT_Interface<S> *entry[N]){}
};
我這樣稱呼它(如預期with):
FT_Thread<4096, 3> ft(to_make_ft);
然而,它抱怨指針已經衰減。
ecos/install/include/ft/thread.hxx:70: error: incompatible types in assignment of ‘FT_Interface<4096u>**’ to ‘FT_Interface<4096u>* [3]’
有什麼辦法來防止這種情況的發生?
啊,是的,就是這樣。 @Xeo有沒有辦法獲得數組地址的副本? – RedX 2011-05-17 14:35:08
@RedX:你總是可以使用&操作符來獲得一個指針:'FT_Interface
*(* ptr_to_entry)[N] = &entry;' – wilx 2011-05-17 14:44:37@RedX:請參閱編輯或@wilx說的內容。 :) – Xeo 2011-05-17 15:02:03