我是 C 语言的新手,我想知道如何将指针数组中的所有元素设置为 null。 我创建了一个包含指向指针数组的指针的结构,我想将所有这些指针设置为空。
结构如下:
typedef struct
{
char **array;
int size, capacity;
} ArrayList;
这里是我尝试创建一个指针数组并将它们初始化为 null 的地方:
ArrayList *createArrayList(int length)
{
int i;
ArrayList* strArray = malloc(sizeof(ArrayList));
for(i=1; i<length; i++)
{
strArray->array[i] = NULL;
}
return strArray;
}
不幸的是,这会产生段错误。任何帮助将不胜感激。
最佳答案
strArray->array[i] = NULL;
您不能这样做,因为您还没有为array
分配内存。您需要将其分配为
strArray->array = malloc(sizeof(char *) * length);
然后像您所做的那样将所有元素初始化为 NULL
。
您还可以使用 calloc
将内存设置为 0
,在这种情况下您不需要 for
循环。
strArray->array = calloc(length, sizeof(char *));
关于c - 在 C 中,如何将结构中指针数组中的所有元素初始化为 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21507162/