I understand that struct Person returns a pointer ( *person_create )
Wait, thatβs not what you think, or at least you donβt say so.
Here person_create() is a function that returns a pointer to a struct Person . This is not a definition of struct Person .
Now, leading to your action, struct Person *who does not define a struct Person , rather, it defines a who variable, which is a pointer to a struct Person .
For convenience, consider int someRandomVariable = 0 . It does not define int , right? It defines a variable someRandomVariable type int .
source share