gpt4 book ai didi

c - 在链表 C 中插入字符串或字符

转载 作者:行者123 更新时间:2023-11-30 16:24:43 25 4
gpt4 key购买 nike

我想了解如何将某个字符串正确存储到链表中。

例如定义列表:

typedef struct node {
int code;
char surname[n];
struct node *next;
}Student;
typedef Student *List;

定义正确吗?

或者我应该插入一个指向 char 的指针?例如 char *pc ?

问题是如何正确存储姓氏,如果我必须在“code”中插入一个值,这相对简单,因为我只是简单地声明一个指针“aux”,然后 aux->code = x,其中 x是一个整数。

问题是如何扫描或者如何将一串字符放入 surname[n] 处,例如调用函数。

例如,创建另一个大小为 n 的 vector ,vet[n] 扫描此 vector ,然后分配 aus->surname = vet[n] 可以吗?

另一个信息,可能与第一个问题相关,结构体中定义的数组的大小可以是变量吗?

最佳答案

定义它的方式n需要是一个编译时常量;所以 - 关于问题的最后部分 - n 不能因对象而异,因此在 struct 本身中没有任何意义。

*surnamesurname[n] 之间的区别在于,您需要使用 malloc 为其分配内存,而后者提供每个对象内的内存。两者都会起作用;但是,在这两种情况下分配数组都不起作用:

char* surname;
...
char vec[100];
scanf("%99s",vec);
surname = malloc(strlen(vec)+1);
strcpy(surname,vec);

一旦对象被丢弃,不要忘记释放姓氏。

或者:

char surname[100];
...
char vec[100];
scanf("%99s",vec);
strcpy(surname,vec);

关于c - 在链表 C 中插入字符串或字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53584464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com