如果我有以下功能
int execute_command(char **args) {
if (args[0] == NULL) {
return 1;
}
//more code...
}
我如何故意调用execute_command(blank)
char **blank
初始化{null},以便将if语句评估为true?
答案 0 :(得分:2)
这样做的一种简单方法是创建一个大小为1的指针数组,并将其内容设置为NULL
,如下所示:
char *args[] = { NULL };
现在您可以将此数组传递给execute_command
:
execute_command(args);
指针数组将会衰减"到函数调用的指向指针,产生你正在寻找的效果。
答案 1 :(得分:0)
var[0]
相当于*(var + 0)
,这意味着指向的第一件事必须为null。
因此它应该是指向null的指针的地址(因为它接受char**
),即。 char* arg = NULL; execute_command(&arg);
。