C:在列表末尾添加元素

时间:2020-10-01 09:58:51

标签: c list compiler-errors codeblocks

我想在列表末尾添加一个项目。我不明白为什么该程序正在编译,但是出现了问题并停止了执行。注释函数的最后一行,一切正常,但是很明显,它丢失了指向列表最后一个元素的指针。我认为这与“ ptr”修改其“指针”的不可能有关。有人可以帮我吗?谢谢

void add_element(struct element *ptr, int item) {

while(ptr != NULL) {
    ptr = ptr->pointer;
}
struct element *ptr2;
ptr2 = (struct element*)malloc(sizeof(struct element));
ptr2->number = item;
ptr2->pointer = NULL;
ptr->pointer = ptr2; }

1 个答案:

答案 0 :(得分:3)

在代码的最后一行,您将不会为ptr->pointer赋值,但是在您的while循环中,您的条件是:如果ptr不为NULL,我们将继续,因此在退出while循环之后{ {1}}等于ptr

要解决您的问题,请使用以下while循环:

NULL
相关问题