you need to delete the record, but not until you've got the "next" pointer from it, so need to keep a pointer to it for that reason. After you've deleted start you cant reference it anymore because its deleted :)
void delbeg()
{ delete start; // memory occupied by node pointed to by start returned to heap.
start=start->next; // Not valid. What start points to is no longer valid.
}
As the comment indicates, after line 2 executes, what start points to no longer exists. Therefore the use of start->next on line 3 is invalid.