#include
#include
struct member
{
char iName[20];
struct member* pNext;
};
int iCount;
struct member* creat()
{
struct member* pNew, * pEnd;
struct member* pHead = NULL;
iCount = 0;
pEnd = pNew = (struct member*)malloc(sizeof (struct member)); /强制转化为结构体变量指针类型/
if (pEnd == NULL || pNew == NULL)
{
printf("error\n");
exit(-1);
}
printf("请输入室友姓名:\n");
scanf_s("%s", &pNew->iName,10);
while(pNew->iName != NULL)
{
iCount++;
if (iCount == 1)
{
pNew->pNext = NULL;
pEnd = pNew;
pHead = pNew;
}
else
{
pNew->pNext = NULL;
pEnd->pNext = pNew;
pEnd = pNew;
}
pNew= (struct member*)malloc(sizeof(struct member));
if (pNew == NULL)
{
printf("error\n");
exit(-1);
}
scanf_s("%s", &pNew->iName,10);
}
free(pNew);
return pHead;
}
void print(struct member* pHead)
{
int Index = 1;
struct member* pTemp;
pTemp = pHead;
while (pTemp!=NULL)
{
printf("第%d名员工:\n", Index);
printf("姓名:%s\n", pTemp->iName);
pTemp = pTemp->pNext;
Index++;
}
}
int main()
{
struct member* pHead;
pHead = creat();
print(pHead);
return 0;
}
你的while循环是一个死循环