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