【发布时间】:2016-04-09 06:29:50
【问题描述】:
我正在尝试在 C++ 中实现链表。以下是我的代码,我得到了这个异常
LinkedList.exe 中 0x012F4C61 处的第一次机会异常:0xC0000005:访问冲突读取位置 0xCDFCA94C。
头文件
#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 文件
#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;
}
}
主要功能
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");
}
【问题讨论】:
-
细看
LinkedList::add函数,列表不为空怎么办?你不应该动态地分配一个节点吗?