c - 如何初始化一个只有 NULL 指针的字符串数组?

标签 c arrays pointers

我必须初始化一个仅由 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/

相关文章:

c - For 循环使我的程序崩溃?

C++ 鼠标点击窗口中的特定位置

java - 为什么在二分查找中返回低位而不是高位?

arrays - Coldfusion 从动态表单复选框创建数组

c - 指向结构的数组指针

c - 为什么这段代码可以工作并且不会产生段错误?

c - 开放系统调用-Linux

c - C : Binary files 上的文件操作

c++ - 用 char* 增加数组 [C++]

将指针转换为 int