我正在做一个程序,让我输入一个模糊的系列,他们中的任何一个都有一个名字。这就是我如何编码它们:
struct lista // lista means list
{
char nome[30]; // nome means name
struct serie *serie;
struct lista *prossima; // prossima means next
};
struct serie
{
int n;
struct serie *prossim;
};
我分配了这个结构体,使lista
在main()
中工作:
struct lista *inizio = NULL; // inizio means start
struct lista *list = NULL;
struct lista *precedente = NULL; // precedente means previous
如何创建结构体来访问列表的struct serie *serie
?我想到这样做:
struct list.serie start = NULL;
struct list.serie seri = NULL;
struct list.serie previous = NULL;
但它不起作用
我应该怎么打?
如何释放内存?
我做的结构列表
list = inizio;
while (list != NULL)
{
struct lista *pros = list->prossima;
free(list);
list = pros;
}
list = NULL;
我如何免费的系列列表?
我尝试了在前面的示例中如何通过键入以下内容创建serie结构:
struct list.serie start;
等等...但它不能编译,因为它说Expected an identifier
对于释放,我可以应用与原始列表lista
相同的方法
我尝试在不访问struct serie *serie
的情况下这样做,所以只输入名称,所以我如何利用列表似乎是可以的,因为我可以编写一个简单的列表,但列表的列表是问题。
对于想要查看完整代码的人:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
struct lista
{
char nome[30];
struct serie *serie;
struct lista *prossima;
};
struct serie
{
int n;
struct serie *prossim;
};
int main()
{
int dim;
struct lista *inizio = NULL;
struct lista *list = NULL;
struct lista *precedente = NULL;
printf("How many series do you want to add? ");
scanf("%d", &dim);
for (int i = 0; i < dim; i++)
{
list = malloc(sizeof(struct lista));
printf("Enter the name of the series: ");
scanf("%s", list->nome);
list->prossima = NULL;
struct list.serie start; // THIS IS WHERE I GET THE ERROR
// HOW DO I USE list.serie to create lists?
if (i == 0)
{
inizio = list;
}
else
{
precedente->prossima = list;
}
precedente = list;
}
list = inizio;
while (list != NULL)
{
printf("The name of the series is: %s\n", list->nome);
list = list->prossima;
}
list = inizio;
while (list != NULL)
{
struct lista *pros = list->prossima;
free(list);
list = pros;
}
list = NULL;
return 0;
}
1条答案
按热度按时间wtzytmuj1#
请显示错误信息,以便我们更好地了解问题。
需要注意的重要事项
1.指针是用“->”而不是“.”访问的
serie* serie
不是结构声明,而是一个变量。所以不能用它来代替数据类型您可以使用
list->serie
访问一系列列表