I am trying to build my own implementation of a linked list in C++. My code is compiling but apparently there is some issue with my pointers referring to invalid memory addresses.
Here is my implementation:
#include <iostream> #include <string> using namespace std; class Node { private: string _car; Node* nextNode; public: void setCar(string car) { _car = car; } string getCar() { return _car; } void setNextNode(Node* node) { nextNode = node; } Node* getNextNode() { return nextNode; } }; Node* findLast(Node* node) { Node* nodeOut = NULL; while (node->getNextNode() != NULL) { nodeOut = node->getNextNode(); } return nodeOut; } string toString(Node* node) { string output = ""; while (node->getNextNode() != NULL) { output += node->getCar() + " "; node = node->getNextNode(); } return output; } int main() { char xit; //ser head node to NULL Node* headNode = NULL; //create node 1 Node* node1 = new Node(); node1->setCar("Mercedes"); //create node 2 Node* node2 = new Node(); node2->setCar("BMW"); //set node links headNode->setNextNode(node1); node1->setNextNode(node1); node2->setNextNode(node2); headNode = node1; Node* lastNode = findLast(headNode); lastNode->setNextNode(NULL); cout << toString(headNode) << endl; //pause console cin >> xit; }