2012-06-08 33 views
1

我有一個打印FUNC象下面這樣:如何將二維字符數組轉換爲char **?

void print(char **p) 
{ 
    cout<<p[0]<<endl; 
} 

這裏是我的主要FUNC

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    char a[50][50]; 
    strcpy(a[0], "hello"); 
    print(&a[0]); 
} 

打印FUNC調用將得到編譯錯誤。我的問題是沒有修改打印函數的定義,我如何修改打印函數調用以打印出你好?

更新:以下代碼將工作。

char *temp=a[0]; 
print(&temp); 

回答

0

你不需要轉換anyting。如果你用一個數組作爲參數來調用funktion,這總是一個指針。在我看來,您只需致電

print(a [0]);

你所做的將會導致char *作爲參數。

+0

試過,你會得到編譯錯誤,無法將參數1從char [50]轉換爲char **。 – GLP

+0

對,如果你這樣做,你必須改變爲:void print(char * p) 如果你真的想要對2D數組進行vertage操作,它必須像下面這樣輸出:print((char **)a) ; 我真的不知道爲什麼... – Felix

相關問題