C - 指向字符串数组的指针

时间:2014-02-02 14:55:59

标签: c arraylist struct

我已经坚持了一段时间了!

我必须使用这个给定的结构:

typedef struct ArList
{
    char **array; // pointer to array of strings
    int size; // number of elements
    int capacity = 10; // length of array
} ArList;

通过使用函数创建动态分配的Arlist(这是我应该进入的地方:

ArList *createArList(int length)

给出的说明:第一个目标是创建ArList

ArList* list = malloc(sizeof(ArList));

然后我必须初始化内部数组:

list->size = 0; //Given as initially 0
list->array[list->size];

最后,(这是后来的,但我现在想测试)我必须将一个字符串复制到数组的元素中。

strcpy(ArList[0], "CAT");

此时我运行了代码以查看它是如何运行的,它会输出单词“CAT”,但之后会立即崩溃。

我刚开始学习结构和内存分配,现在看起来一切都让人感到困惑。

这适用于C编程。

1 个答案:

答案 0 :(得分:0)

您无法使用list->array[list->size]进行分配,请使用:

list->array = malloc(sizeof(char*)*list->size);

然后当你想要填充数组时:

list->array[0] = strdup("CAT");

如果我正确理解你要做的事情。