I'm not too clear on what create_list() is supposed to do... it looks like it's only receiving two arguments - a pointer to part of the list (the head, I suppose?) and a single value_type (integer). How can it create a list with only one integer? Or does the main program call it multiple times with different values? Does head_par always point to the first node in the list?
I guess your create_list function will have to create a new node, insert it at the end (?) of the list, and then set its value to whatever was passed into create_list. Just guessing here, since I am not too sure what you're trying to do