Ok. Attempting to restate my quandary as follows. If the code was restated as:
...
Then this is false:
...
Since it is actually now stored in pointername (which is a pointer to a PTPParams but not a pointer to a pointer to a PTPParams)
I'm not sure I understand the quandary, but maybe you're taking the "and stored in params" more literally than I intended. I meant it in the sense of params as being an "output parameter". You are correct that the value of the user data will stored in the
addressed pointed to pointertopointername, which effectively sets the value of
pointernameWhile "output parameters" don't exist as a distinct concept in C, it's often convenient to just treat the "*" as a decoration needed to access the value of an output parameter when thinking about code like this.