/* badPointer.c */ #include #include struct node { int info; struct node *next; }; typedef struct node *NodePtr; NodePtr head = NULL; //NodePtr head; void AddToFront( int x ); int DeleteFront(); void PrintList(); int main() { int n; AddToFront( 3 ); AddToFront( 2 ); AddToFront( 1 ); PrintList(); n = DeleteFront(); printf( "%d\n", n ); return 0; } void AddToFront( int x ) { NodePtr n = (NodePtr)malloc(sizeof(struct node)); n->info = x; n->next = head; //head = n; } int DeleteFront() { NodePtr p = head; int n = head->info; free( (void *)p ); } void PrintList() { NodePtr p = head; printf( "Current list contents: " ); printf( "{ " ); while( p ) { printf( "%d", p->info ); p = p->next; } printf( " }\n" ); }