It means that the function can modify the value of the pointer in the caller.
i.e.
myName* foo; /* ToDo - initialise foo in some way*/
fun(foo);
/* foo might now point to something else*/
I regard this as an anti-pattern. The reason being that people reading your code will not expect foo
to be modified in such a way since the calling syntax is indistinguishable from the more normal function void anotherFun(int * name){...}
.
The stability of such code can suffer. As such, I'd recommend your using void fun(int ** name){...}
. The calling syntax then becomes fun(&foo)
which indicates to the function user that foo
might be modified.