C++ C++;链表崩溃
我是数据结构方面的新手。我正在尝试为一个字符串编写一个链接列表,并将列表显示到屏幕上。它在节点*p=create(“I”)处崩溃;带有访问冲突警告的写入位置。这是我的代码,我不知道如何修复它。请帮忙。多谢各位C++ C++;链表崩溃,c++,c++11,visual-c++,C++,C++11,Visual C++,我是数据结构方面的新手。我正在尝试为一个字符串编写一个链接列表,并将列表显示到屏幕上。它在节点*p=create(“I”)处崩溃;带有访问冲突警告的写入位置。这是我的代码,我不知道如何修复它。请帮忙。多谢各位 #include <iostream> #include <cstdlib> #include <string> using namespace std; struct Node { string data; Node *prev,
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
struct Node
{
string data;
Node *prev, *next;
};
Node* create (string value)
{
Node *temp = (Node*)malloc(sizeof(Node));
if (NULL==temp) return NULL;
temp->data=value;
temp->next=NULL;
temp->prev=NULL;
return temp;
}
void addHead (Node* head, string value)
{
Node *temp = new Node;
temp->data=value;
temp->next=head;
head->prev=temp;
head = temp;
temp->prev = NULL;
}
void addTail (Node* head, string value)
{
Node* s = new Node;
Node* temp = new Node;
s=head;
while (s->next!=NULL)
s = s->next;
s->next = temp;
temp->prev = s;
}
void display (Node* head)
{
if (head==NULL) return;
else
{
cout << head->data << " ";
display (head->next);
}
}
int main()
{
Node *p = create("I ");
addTail(p, "want ");
addTail(p, "cookies ");
display(p);
return 0;
}
#包括
#包括
#包括
使用名称空间std;
结构体类型
{
字符串数据;
节点*prev,*next;
};
节点*创建(字符串值)
{
Node*temp=(Node*)malloc(sizeof(Node));
if(NULL==temp)返回NULL;
温度->数据=值;
temp->next=NULL;
temp->prev=NULL;
返回温度;
}
void addHead(节点*头,字符串值)
{
Node*temp=新节点;
温度->数据=值;
温度->下一步=头部;
压头->上一个=温度;
压头=温度;
temp->prev=NULL;
}
void addTail(节点*头,字符串值)
{
Node*s=新节点;
Node*temp=新节点;
s=头部;
while(s->next!=NULL)
s=s->next;
s->next=温度;
温度->上一个=s;
}
无效显示(节点*头部)
{
if(head==NULL)返回;
其他的
{
cout数据(下一步);
}
}
int main()
{
节点*p=创建(“I”);
addTail(p,“want”);
addTail(p,“cookies”);
显示器(p);
返回0;
}
您需要在创建
函数中使用新建
,而不是malloc
,创建一个节点。使用malloc,不会调用节点
的构造函数,对数据
的赋值将访问未初始化的字符串对象