You don't need to preface your function return type by the type identifier.
node* insr(node* start, int item)
You are not attaching the new node to the end of the list. Notice that the condition to terminate the loop is that cunt == NULL, and that you set the value of cunt in the loop, but when cunt is NULL it is essentially detached. At that point you are assigning the ptr to the end of cunt, but its in its own world. Its a memory leak.