Would this fix it?
Code:char pop(list **ptr){ if( (*ptr)->node != NULL ){ char tmp; list * temp; temp = malloc(sizeof(list)); tmp = (*ptr)->node->element; temp->node = (*ptr)->node->node; free((*ptr)->node); (*ptr)->node = temp->node; free(temp); return tmp; } else { printf("\nMismatched pop!\n"); exit(0); //Not a program error. } }