Jestem nowy w C i wskaźnikach. Poniżej znajduje się kod, z którym eksperymentowałem.Inny adres wskaźnika wydrukowany wewnątrz funkcji
struct node{
struct node * next;
struct node * prev;
int num;
};
void func(struct node * leaf , struct node ** add_leaf){
printf("function starts");
printf("&leaf = %p add_leaf = %p\n" , &leaf , add_leaf);
printf("leaf = %p *add_leaf = %p\n" , leaf , *add_leaf);
printf("function over");
return
}
void main(){
struct node * leaf = (struct node*)malloc(sizeof(struct node));
printf("leaf = %p\t&leaf = %p\n" , leaf , &leaf);
func(leaf , &leaf);
}
Wartości liścia i * add_leaf są równe i to było to, czego się spodziewałem. Jednak nie mogłem zrozumieć, dlaczego wystąpiła różnica w wartościach & liści i add_leaf po wydrukowaniu wewnątrz funkcji. Tutaj próbuję wydrukować adres liścia wskaźnika węzła.
dzięki, dokonano zmiany – user3663685