Почему C++ действует иначе, чем отладка?
Я имплементировал LinkedList в c++.
Я ожидал этого. :
List is not empty!! 4
Но результат был :
List is not empty!! 5
и забавно, что когда я отлаживаю и так "перешагиваю" снова и снова, я получаю ожидаемый результат. Есть ли кто-нибудь, кто говорит мне, что я что-то упускаю?
#include <iostream> using namespace std; struct node { int data; node *next; }; class LinkedList { node *head; node *tail; public: LinkedList(){ head = nullptr; tail = nullptr; }; void createNode(int value); void display(); }; void LinkedList::createNode(int value){ node *temp = new node; temp->data = value; temp->next = nullptr; if(head == nullptr){ head = temp; delete temp; temp = nullptr; } else { cout << "List is not empty!!" << endl; } }; void LinkedList::display() { node *displayNode = new node; displayNode = head; while(displayNode != nullptr) { cout<<displayNode->data<<"\t"; displayNode=displayNode->next; } } int main(){ LinkedList *list1 = new LinkedList(); list1->createNode(4); list1->createNode(5); list1->display(); };
Что я уже пробовал:
Я пробовал компилировать и отлаживать.