我已经坚持了一段时间了!
我必须使用这个给定的结构:
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编程。
答案 0 :(得分:0)
您无法使用list->array[list->size]
进行分配,请使用:
list->array = malloc(sizeof(char*)*list->size);
然后当你想要填充数组时:
list->array[0] = strdup("CAT");
如果我正确理解你要做的事情。