我是编程方面的新手,在我的大学里我的第二个学期,一位教师教我们关于链表和malloc函数,我们可以动态地创建一个节点并增加或减小它的大小。我们的老师教我们如何在这个列表中存储一个整数值
struct node
{
int num;
struct node *next;
}head;
但我想在链表中存储一个字符串,说“学生名字”而不是整数..所以我想知道如何做到这一点.. 我为此编写了这段代码
#include <stdio.h>
#include <conio.h>
struct node
{
char name[20];
int age;
struct node *next;
};
//
void addatbegin(struct node **q,char name [20],int age)
{
struct node *r;
r=(struct node *)malloc(sizeof(struct node));
r->name=name;
r->age=age;
r->next=*q;
*q=r;
}
//
void addatend(struct node **q,char name[20],int age)
{
struct node *temp,*r;
if(*q==NULL)
{
temp=(struct node *)malloc(sizeof(struct node));
temp->name=name;
temp->age=age;
temp->next=NULL;
*q=temp;
}
else {
temp=*q;
while(temp->next!=NULL)
{
temp=temp->next;
}
r=(struct node *)malloc(sizeof(struct node));
r->name=name;
r->age=age;
r->next=NULL;
temp->next=r;
}}
void main()
{
struct node *head;
int age,ch;
char name[20];
head=NULL;
while(1)
{
printf("***** MENU ****** \n");
printf("1.Add at Begining of List\n");
printf("2.Add at End of List\n");
printf("3.Print the list\n");
printf("4.Exit\n \n");
printf("Enter Your choice:- ");
scanf(" %d",&ch);
switch(ch)
{
case1:printf("Enter Name:- ");
scanf(" %s",name);
printf("Enter Age:- ");
scanf(" %d",&age);
addatbegin(&head,name,age);
break;
}
getch(); }}
但其失败的错误左值