如果我有以下温控功能正在初始化指针的指针为空
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);' –