我必须初始化一个仅由 NULL 指针组成的字符串数组,没有别的。如果我理解正确,则分配 NULL 指针如下所示:
char **array = NULL;
否则我试过了
char *array[] = {NULL};
但是 NULL 指针的空间应该是动态分配的,在这里我很困惑,我的代码不起作用。
char **array = (char**)malloc(sizeof(char*));
如果你能帮我解决这个问题,我将不胜感激。
最佳答案
应该这样做:
char **array = malloc(1 * sizeof *array);
array[0] = NULL;
这假定分配成功,您应该在实际代码中依赖它之前对其进行测试。 1
表示“1 个元素的数组”,这当然是多余的,但我觉得它增加了一些清晰度。
上面声明了一个指向(数组)字符指针的指针,并尝试为 1
这样的字符指针分配空间。
实际上这样做似乎毫无意义,但我无法读懂你的想法来弄清楚你可能应该做什么。 :)
关于c - 如何初始化一个只有 NULL 指针的字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29608294/