The nature of pointers being NULL in C++ seems to feel arbitrary. I'm sure there's a method to it that I'm missing, but the following makes sense to me, but doesn't seem to work. I have the following method for adding a node to a linked list:
LLNode *ll; // set to NULL in constructor. void addToLL(Elem *e) { LLNode *current = ll; while(true) { // edge case of an empty list. if (ll == NULL) { ll = new LLNode(e); break; } else if (current == NULL) { current = new LLNode(e); break; } else { current = current->next; } } } When adding a 2nd node to the list, the case for current == NULL does not get caught, so it tries to call current = current->next and crashes do to accessing invalid memory. Why would this be the case? A LLNode has a pointer to an Elem, and a pointer called next to another LLNode.
currentpointer, but you never change thenextpointer of any node to point to a new element in the linked list. As written, your list can never have more than one node in it.llto NULL in a constructor, is it a member of a class? Is this addToLL function a method of a class?