这个行列程序用哪种类型来定义最开始的变量呢

这个队列程序用哪种类型来定义最开始的变量呢?
#include "stdafx.h"
#include <iostream>
#include "stdlib.h"
#include "time.h"

using namespace std;

typedef int Item;

struct Node
{
Item item;
Node *next;
};

const int full = 5;

class Queue
{
private:
Node *front;
Node *rear;
int count;

public:
Queue()
{
front = NULL;
rear = NULL;
count = 0;
}

bool isfull()
{
return count == full;
}

bool isempty()
{
return count==0;
}

bool additem(Item &item)
{
if(isfull())
{
return false;
}
Node * add;
add->item = item;
add->next = NULL;
count++;

if(front == NULL)
{
front = add;
// rear = add;
}
else
{
     rear->next = add;
//  rear = add;
}
rear = add;


return true;
}

bool substractitem(Item &item)
{
if(isempty())
{
return false;
}
item = front->item;
count--;
Node *temp;
temp = front;
front = front->next;
delete temp;

if(count==0)
{
rear=NULL;
}

return true;
}
int get_count()
{
return count;
}
};

int main()
{
Item item;    //在这一步上往往不知道怎样定义变量,这里出错了。
                      //不知是定义Item类型的还是Node类型 还是Queue类型?
cin>>item;
Queue queue;
queue.additem(item);

// Node one;     //这几步用Node 类型定义变量会出错。
// cin>>one.item;
// Queue queue;
// queue.additem(one.item);

cout<<"There are "<<queue.get_count()<<" members in the queue.\n";

return 0;
}


用Item定义变量可以编译,运行时出错错误:
这个行列程序用哪种类型来定义最开始的变量呢

用Node定信变量时出现错误:
这个行列程序用哪种类型来定义最开始的变量呢

总之,不明白是用Item,Node,还是Queu来定义最开始的变量?
------解决方案--------------------
这个行列程序用哪种类型来定义最开始的变量呢
如上图:你代码的第49行,声明的add指针变量没有申请内存,就直接赋值了,肯定就会报你下面各种内存不能写入的问题啦!
改一下应该就好了:Node* add=new Node();
其它部分没细看,应该是这个问题导致的