2016-12-02 25 views
-3

爲什麼這段代碼不能編譯?爲什麼我的代碼不能使用類型轉換進行編譯?

int substring(char * text, int k, int m, (char *) patterns[]) { 
//stuff 
// and example return is -1, meaning the sub string was not found 
} 

我知道,在(字符*)括號內的問題,但我似乎無法弄清楚,爲什麼?我嘗試在C++和C中將模式聲明爲一個字符串,但它不會編譯。

錯誤消息是「錯誤:期望的聲明說明符或'...'之前'('token'。它是我的課程的算法,我的教授給了我們那些參數的函數,另外」模式是一個數組的k指針指向以0終止的長度爲m的字符串我只想知道爲什麼給定的函數不會編譯即使您只寫入return -1

+3

的就是你得到確切的錯誤信息? –

+2

*「爲什麼這段代碼不能編譯?」*爲什麼要這樣編譯,如果編譯它會做什麼? –

+0

請告訴你如何調用它,並將變量的定義傳遞給最後一個參數。該語法表示您正在傳遞一個指針數組。 –

回答

1

char *是一個類型聲明,即轉換)。

3

類型說明符不得包含在聲明中括號,你聲明的函數,這是不是當你確實可以應用於鑄造參數的函數的調用。

沒有意義來重新解釋一個兩維字符陣列或用含有字符串作爲一個一維陣列char *類型的元件的陣列。

要考慮到這個聲明的參數

char * patterns[] 

的相當於

char ** patterns 
相關問題