2016-03-28 59 views
0

如果我有以下溫控功能正在初始化指針的指針爲空

int execute_command(char **args) { 
    if (args[0] == NULL) { 
     return 1; 
    } 
    //more code... 
} 

我怎麼能故意叫execute_command(blank)其中char **blank會(空)以這樣的方式初始化爲允許if語句作爲評價真正?

+0

'char * arg = NULL; execute_command(&arg);' –

回答

2

這樣做的一個直接的方法是創建一個大小一個指針數組,其內容設置爲NULL,像這樣:

char *args[] = { NULL }; 

現在可以將這個數組傳遞給execute_command

execute_command(args); 

指針數組會「衰減」爲函數調用中的指針指針,從而產生您正在查找的效果。

0

var[0]相當於*(var + 0),這意味着指出的第一件事必須爲空。

因此它應該是指向null的指針的地址(因爲它接受char**),即。 char* arg = NULL; execute_command(&arg);