我在获取 create 以在此处保留 firstE 时遇到问题:
struct node {
char * data;
struct node * next;
};
struct node * createList(char * firstE){
struct node *create;
create = malloc(sizeof(struct node));
create->data = malloc(sizeof(struct node));
strcpy(create->data, firstE);
create->next = NULL;
return create;
}
create->data
的内存分配有问题。我试图让它保持 FirstE
的值,但我似乎无法得到它。
最佳答案
我不得不猜测你的问题,因为没有结构定义。您的第二个 malloc
为与结构相同类型的字段分配内存。但是因为你使用 strcpy
从函数参数中复制,我认为这行是不正确的,它分配了错误的内存量
create->data = malloc(sizeof(struct node));
strcpy(create->data, firstE);
由于您将字符串参数复制到该字段,因此我建议这样做
create->data = malloc(1 + strlen(firstE));
strcpy(create->data, firstE);
1 +
允许字符串终止符。
关于c - 分配一个结构并在其中保存一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30740122/