编程出错
中兴c语言培训上的一个例题,构造动态数据存储链表可是有一个错误
#include <stdio.h>
#include <stdlib.h>
typedef struct tagStudent
{
int m_nNumber;
char m_szName[20];
struct Student *m_pNext;
}Student;
Student *CreateLink(void);
void main(void)
{
Student *pHeader = NULL;
Student *pTmp = NULL;
pHeader = CreateLink();
pTmp = pHeader;
while (pTmp != NULL)
{
printf("Name :%s Number %d\n", pTmp->m_szName, pTmp->m_nNumber);
pTmp = pHeader;
}
}
Student *CreateLink(void)
{
Student *head = NULL, *end, *tmp;
int nNumber = 1;
do
{
printf("输入学生学号(输入 0 或 负数表示结束:");
scanf("%d", &nNumber);
if (nNumber <= 0)
break;
tmp = (Student *)malloc(sizeof(Student));
tmp->m_nNumber = m_nNumber;
printf("输入学生姓名:");
scanf("%s", tmp->m_szName);
if (head == NULL)
{
head = tmp;
end = tmp;
}
else
{
end->m_pNext = tmp;
end = tmp;
}
end->m_pNext = NULL;
} while (m_nNumber > 0);
return head;
}
出错提示:
D:\C++\program\动态生成一个链表.cpp(9) : error C2371: 'Student' : redefinition; different basic types
[最优解释]
把
typedef struct tagStudent
{
int m_nNumber;
char m_szName[20];
struct Student *m_pNext;
}Student;
typedef struct tagStudent
{
int m_nNumber;
char m_szName[20];
tagStudent *m_pNext;
}Student;