Quote Originally Posted by mutandis View Post
But, would you only use **ptr when dereferencing?

I ask because I *think* I've seen it used as an argument in a function prototype (do you guys call them prototypes or declarations here?)

I've confused myself with these double asterisks myself... Could anyone give an example of when you would want a pointer to a pointer? Why wouldn't you just change where the first pointer pointed to?

-Dave
Well, for the obvious reason that you can't change where the first pointer points to, just like you can't change any parameter passed in to a function. If you search the board, you will find 374 examples of people trying to create a new linked list like so:
Code:
void create_list(Node *head, Data start_data) {
    head = malloc(sizeof Node);
    head.data = start_data;
    head.next = NULL;
}
and wondering why they didn't have a list when they got back to main.