前世后载 2022-09-13 18:24 采纳率: 100%
浏览 17
已结题

为什么我的链表调试的时候,节点内容都输入完了,我回车按了好多还是没有进入下一步,一点反应都没有?(编译器显示无任何错误和警告)

#include<stdio.h>
#include<stdlib.h>

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;
}

img

  • 写回答

1条回答 默认 最新

  • _GX_ 2022-09-13 19:02
    关注

    你的while循环是一个死循环

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月1日
  • 已采纳回答 10月24日
  • 创建了问题 9月13日