[英]C++ LinkedList error: Access violation error
I am trying to implement Linked List in C++. 我正在尝试在C ++中实现链接列表。 Following is my code and I am getting this exception 以下是我的代码,我正在收到此异常
First-chance exception at 0x012F4C61 in LinkedList.exe: 0xC0000005: Access violation reading location 0xCDFCA94C. LinkedList.exe中0x012F4C61的第一次机会异常:0xC0000005:访问冲突读取位置0xCDFCA94C。
header file 头文件
#pragma once
#include "LinkNode.h"
class LinkedList
{
private:
LinkNode *head;
LinkNode *tail;
public:
LinkNode add(int data);
void print();
LinkNode getHead();
LinkedList(void);
~LinkedList(void);
private:
void modify();
};
Cpp file Cpp文件
#include "stdafx.h"
#include "LinkedList.h"
#include <iostream>
using namespace std;
LinkedList::LinkedList(void)
{
this->head = NULL;
this->tail = NULL;
}
LinkedList::~LinkedList(void)
{
}
LinkNode LinkedList :: add(int data)
{
if(this->head == NULL)
{
this->head = new LinkNode(data);
this->tail = head;
return *head;
}
else
{
LinkNode node(data);
tail->next = &node;
tail = tail->next;
}
}
Main function 主功能
int _tmain(int argc, _TCHAR* argv[])
{
LinkedList linklist;
linklist.add(1);
linklist.add(2);
linklist.add(3);
linklist.add(4);
linklist.add(5);
linklist.print();
system("pause");
}
LinkNode node(data);
tail->next = &node;
tail = tail->next;
node
resides on stack and life time of it ends as control leaves the LinkedList::add
member function. node
驻留在堆栈上,并且其生命周期随着控件离开LinkedList::add
成员函数而结束。 Dynamically allocate the tail->next
node instead. 动态分配tail->next
节点。
Also destructor needs to properly deallocate the resources dynamically acquired. 析构函数还需要适当地释放动态获取的资源。 Currently, the program has memory leaks. 当前,该程序存在内存泄漏。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.