繁体   English   中英

分配结构并在其中保存字符串

[英]Allocating a struct and saving a string in it

我在这里获得创建以保留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的价值,但我似乎无法FirstE

由于没有结构定义,我不得不猜测您的问题。 您的第二个malloc为与该结构相同类型的字段分配内存。 但是因为您使用strcpy从函数参数复制,所以我建议这一行是不正确的,它分配了错误的内存量

create->data = malloc(sizeof(struct node));
strcpy(create->data, firstE);

由于您将字符串参数复制到此字段,因此我建议这样做

create->data = malloc(1 + strlen(firstE));
strcpy(create->data, firstE);

1 +是允许使用字符串终止符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM