0
node *temp; 
temp->dataItem = newPassenger;
if(size == 0)
{
    Head = temp;
    Tail = temp;
}
else
{
    Tail->nextNode = temp;
    Tail = temp;
}
size++;

我需要帮助,因为 VS 一直说temp没有初始化,我对 C++ 的经验很少。我的节点类如下

#include "passenger.h"
#pragma once
class node
{
public:
    node();
    passenger dataItem;
    node * nextNode;
};
4

3 回答 3

1

您应该阅读更多介绍性 C++ 书籍。这通常很早就被覆盖了。

你应该写

node *temp = new node;

这将为内存中的节点保留空间。完成此节点后,您应该编写

delete temp;

你必须确保你没有删除两次,因为这会导致你的程序崩溃。

于 2013-02-25T04:13:02.007 回答
1
node *temp = new node; 
temp->dataItem = newPassenger;
if(size == 0)
{
    Head = temp;
    Tail = temp;
}
else
{
    Tail->nextNode = temp;
    Tail = temp;
}
size++;
于 2013-02-25T04:09:42.990 回答
0
node *temp; 
temp->dataItem = newPassenger;

如果上面确实是您的代码,那么编译器是完全正确的 - 您在temp没有初始化它的情况下进行了延迟。你可能想要这样的东西:

node* temp = new node;
temp->dataItem etc...
于 2013-02-25T04:08:56.800 回答