2016-03-28 85 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);