如果我有以下溫控功能正在初始化指針的指針爲空
int execute_command(char **args) {
if (args[0] == NULL) {
return 1;
}
//more code...
}
我怎麼能故意叫execute_command(blank)
其中char **blank
會(空)以這樣的方式初始化爲允許if語句作爲評價真正?
如果我有以下溫控功能正在初始化指針的指針爲空
int execute_command(char **args) {
if (args[0] == NULL) {
return 1;
}
//more code...
}
我怎麼能故意叫execute_command(blank)
其中char **blank
會(空)以這樣的方式初始化爲允許if語句作爲評價真正?
這樣做的一個直接的方法是創建一個大小一個指針數組,其內容設置爲NULL
,像這樣:
char *args[] = { NULL };
現在可以將這個數組傳遞給execute_command
:
execute_command(args);
指針數組會「衰減」爲函數調用中的指針指針,從而產生您正在查找的效果。
var[0]
相當於*(var + 0)
,這意味着指出的第一件事必須爲空。
因此它應該是指向null的指針的地址(因爲它接受char**
),即。 char* arg = NULL; execute_command(&arg);
。
'char * arg = NULL; execute_command(&arg);' –