初始化指向null的指针

时间:2016-03-28 00:26:50

标签: c pointers null

如果我有以下功能

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

我如何故意调用execute_command(blank) char **blank初始化{null},以便将if语句评估为true?

2 个答案:

答案 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);