2012-07-16 59 views
0

我的問題IST指針的指針差異NetBeans的gdb調試器和gcc

void function (const char **params)  
{ 
    const char *para;  
    para = &params[0]; //1 
    para = params;  //2 
    para = *&params; //3 
} 

所有3個選項將Netbeans的GDB但GCC編譯說,像從兼容的指針類型賦值做某事。

這是爲什麼differnce ....得到了GCC 4.6.1,我可以做GCC指向** PARAMS與*對價值來決定

+0

para = && params; ? – 2012-07-16 17:58:32

+0

不幸的是... netbeans錯誤和gcc參數被使用,但沒有定義錯誤 – Fendrix 2012-07-16 18:04:18

+0

char * para = params [0];與gcc/llvm – 2012-07-16 18:10:27

回答

3

在這三種情況下,右側的類型手邊是const char **,如果沒有演員表則不能分配到const char *

如果您將警告級別提高到足夠高,所有編譯器都應警告您。

不清楚你想做什麼;如果你想指向第一個子陣列的開頭,那麼這將工作:

para = params[0]; 
+0

謝謝....這也沒有工作const const char * para; para = params [0];只是...告訴我你將如何做演員(char *)? ..... – Fendrix 2012-07-16 18:54:32