Witam,
Mam pytanie odnośnie funkcji usuwającej pozycję z określoną liczby z listy. Wygląda ona u mnie tak:
int remove(struct element **p, int data) {
if ((*p)->number == data) {
struct element *ntr = (*p)->next;
free(*p);
*p = ntr;
return 1;
}
while(*p) {
if ((*p)->next->number == data) {
struct element *ntr = (*p)->next->next;
free((*p)->next);
(*p)->next = ntr;
return 1;
}
*p = (*p)->next;
}
return 0;
}
I działa. Ale moje pytanie brzmi: dlaczego działa również, gdy przekazuję jako parametr nie wskaźnik do wskaźnika do struktury tylko sam wskaźnik do struktury (innymi słowy, jedna gwiazdka zamiast dwóch w parametrze)? Czy program przypadkiem nie powinien wtedy nie działać? :)