#include <stdio.h>
#include <stdlib.h>
struct node {
int value;
struct node * next;
};
struct node* function1(struct node *p) {
p = p->next;
return p;
}
void function2(struct node **p) {
(*p) = (*p)->next;
}
int main(void) {
struct node
* p1
= (struct node
*)calloc(1, sizeof(struct node
)); struct node
* p2
= (struct node
*)calloc(1, sizeof(struct node
)); p1->next = NULL;
p2->next = NULL;
printf("p1 = %p; and p2 = %p\n", p1
, p2
); function1(p1);
function2(&p2);
printf("p1 = %p; and p2 = %p", p1
, p2
); //head = funcion1(head);
//function2(&head);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnN0cnVjdCBub2RlIHsKICAgICAgaW50IHZhbHVlOwogICAgICBzdHJ1Y3Qgbm9kZSAqIG5leHQ7CiAgfTsKICAKICBzdHJ1Y3Qgbm9kZSogZnVuY3Rpb24xKHN0cnVjdCBub2RlICpwKSB7CiAgICAgICBwID0gcC0+bmV4dDsKICAgICAgIHJldHVybiBwOwogICB9Cgp2b2lkIGZ1bmN0aW9uMihzdHJ1Y3Qgbm9kZSAqKnApIHsKICAgICgqcCkgPSAoKnApLT5uZXh0OwogIH0KCmludCBtYWluKHZvaWQpIHsKCQoJc3RydWN0IG5vZGUgKiBwMSA9IChzdHJ1Y3Qgbm9kZSopY2FsbG9jKDEsIHNpemVvZihzdHJ1Y3Qgbm9kZSkpOwoJc3RydWN0IG5vZGUgKiBwMiA9IChzdHJ1Y3Qgbm9kZSopY2FsbG9jKDEsIHNpemVvZihzdHJ1Y3Qgbm9kZSkpOwoJcDEtPm5leHQgPSBOVUxMOwoJcDItPm5leHQgPSBOVUxMOwoJcHJpbnRmKCJwMSA9ICVwOyBhbmQgcDIgPSAlcFxuIiwgcDEsIHAyKTsKCWZ1bmN0aW9uMShwMSk7CglmdW5jdGlvbjIoJnAyKTsKCXByaW50ZigicDEgPSAlcDsgYW5kIHAyID0gJXAiLCBwMSwgcDIpOwoJLy9oZWFkID0gZnVuY2lvbjEoaGVhZCk7CgkvL2Z1bmN0aW9uMigmaGVhZCk7CglyZXR1cm4gMDsKfQo=