C++ C+中的链接列表+;

C++ C+中的链接列表+;,c++,linked-list,C++,Linked List,嘿,伙计们,很抱歉,但我是新来的双链接列表,想知道是否有人能告诉我为什么我的程序在使用add_end()时崩溃 #包括 使用名称空间std; 节点*start_ptr=NULL; 节点*电流; int选项=0; void add_end() { 节点*temp,*temp2; temp=新节点; cout>temp->name; cout>temp->profession; cout>temp->age; temp->nxt=NULL; 如果(启动\u ptr=NULL) { 启动\u ptr=

嘿,伙计们,很抱歉,但我是新来的双链接列表,想知道是否有人能告诉我为什么我的程序在使用add_end()时崩溃

#包括
使用名称空间std;
节点*start_ptr=NULL;
节点*电流;
int选项=0;
void add_end()
{
节点*temp,*temp2;
temp=新节点;
cout>temp->name;
cout>temp->profession;
cout>temp->age;
temp->nxt=NULL;
如果(启动\u ptr=NULL)
{
启动\u ptr=温度;
电流=启动\u ptr;
}
其他的
{
temp2=启动时间;
while(temp2->nxt!=NULL)
{
temp2=temp2->nxt;
}
temp2->nxt=温度;
temp->prv=temp2;
}
}

我打赌这
如果(start\u ptr=NULL)
不是您想要的。。。您是否忘记了一个
=
?if条件永远不会满足,因为该语句相当于
start\u ptr=0;如果(0)
,那么您的代码将假定
start\u ptr
可以被取消引用。您将其分配到
temp2
,然后取消引用
NULL
以访问
static\u cast(0)->next

这一行显然是错误的:

if (start_ptr = NULL)

在哪里定义了
节点
?您没有使用
std::list
(或者更好的
std::vector
)的任何原因?一个可能的错误:if“(start\u ptr=NULL)”将start\u ptr设置为NULL。我认为您的意思是“if(start_ptr==NULL)”,但没有看到如何调用此函数,也不知道崩溃具体是什么,很难说清楚。
if (start_ptr = NULL)