You deference the first pointer and then the second one.
To access the data and next in the structure statement would like this
(*ptr)->data = 5;
(*ptr)->next = temp;
brackets around ptr is required since ->
has higher priority than *
.
->
is equivalent to writing *.
(e.g. ptr->data
is the same as *ptr.data
).