C语言单链表的问题
本帖最后由 AO7 于 2021-12-1 22:02 编辑#include <stdio.h>
#include <stdlib.h>
struct Person
{
int age;
int height;
struct Person *next;
};
void getInput(struct Person *pPerson)
{
printf("age:");
scanf("%d", &(pPerson->age));
printf("height:");
scanf("%d", &(pPerson->height));
}
void addPerson(struct Person **ppHead)
{
struct Person *pPerson, *temp;
pPerson = (struct Person *)malloc(sizeof(struct Person));
if (pPerson = NULL)
{
printf("内存分配失败");
exit(1);
}
getInput(pPerson);
if (*ppHead != NULL)
{
temp = *ppHead;
*ppHead = pPerson;
pPerson->next = temp;
}
else
{
*ppHead = pPerson;
pPerson->next = NULL;
}
}
void showPerson(struct Person *pHead)
{
struct Person *pRead;
int c = 1;
pRead = pHead;
while (pRead != NULL)
{
printf("%d %d\n", (*pRead).age, (*pRead).height);
pRead = pRead->next;
}
}
void releasePerson(struct Person *pHead)
{
struct Person *temp;
while (pHead != NULL)
{
temp = pHead->next;
free(pHead);
pHead = temp;
}
}
int main()
{
struct Person *pHead = NULL;
for (int i = 0; i < 2; i++)
{
addPerson(&pHead);
}
showPerson(pHead);
releasePerson(pHead);
return 0;
}
我按照《带你学C带你飞》系列单链表1里面的代码敲了,只是把Book变成了Person,里面的元素稍微改了一下,但是不能正常运行。
编译的时候没有报错,但是程序总是莫名其妙的停止,多次运行会发现后台有很多未关闭进程。求解
本帖最后由 jackz007 于 2021-12-1 18:47 编辑
解决问题的前提是重现问题,难道你希望别人为了帮你还得照着图片重敲一遍所有代码?
不要贴图片,把你的代码文本贴进代码框。 jackz007 发表于 2021-12-1 18:44
解决问题的前提是重现问题,难道你希望别人为了帮你还得照着图片重敲一遍所有代码?
...
ok 顶一下 自己打断点调试
或者输出值来 确定错误位置
页:
[1]