dimanche 23 mars 2014

I am getting the error "invalid null pointer"


Vote count:

0




I want to read in student names from a file and insert them into my linked-list, but I am having this problem with an error box. The error reads "Expression: Invalid Null Pointer."


I've googled with no such luck. I think I have an idea where I've went wrong, but I don't know how to fix it.


If you could help, that would be great!


Here is my code:


P.S I'm not nearly done so my code might be incomplete, I'm just trying to weed out all my errors now so I don't have triple my errors at the end.


LList.h



#include <iostream>
#include <iomanip>
#include <string>

#ifndef LLIST_H
#define LLIST_H

typedef int ElementType;

class LList
{
public:
LList();
~LList();
void insert(std::string new_data);
void display();
void remove(std::string delete_data);

private:
class Node
{
public:
std::string data;
Node *next;

Node(std::string data_value = NULL);
};

Node *head;
int mySize;
};

#endif LLIST_H


LList.cpp



#include <iomanip>
#include <iostream>
#include <string>
#include "LList.h"

using namespace std;

LList::Node::Node (string data_value)
{
this -> data = data_value;
this -> next = NULL;
}

LList::LList()
{
this -> head = new Node(0);
mySize = 0;
string data = "";
}

LList::~LList()
{
delete this -> head;
}

void LList::insert(string new_data)
{
Node *tempHolder;
tempHolder = this->head;

while (tempHolder->next != NULL)
tempHolder = tempHolder -> next;

Node *newNode = new Node(new_data);
tempHolder ->next = newNode;
this->mySize++;
}

void LList::display()
{
Node *temp;
temp = head->next;

while(temp -> next != NULL)
{
cout << temp -> data << endl;
temp = temp -> next ;
}
}

void LList::remove(string delete_data)
{
Node *tempHolder;
tempHolder = head;
while (tempHolder->next != NULL )
{
if (tempHolder->next->data == delete_data)
{
Node *delete_ptr = tempHolder->next;
tempHolder->next = tempHolder->next->next;
delete delete_ptr;
mySize-- ;
break;
} else
tempHolder = tempHolder->next;
}
}


Main.cpp



#include <iostream>
#include <iomanip>
#include <string>
#include "LList.h"
#include <fstream>

using namespace std;

int main()
{
LList student;

ifstream infile;
char readLine[500];

infile.open ("names.txt");

if(infile.is_open())
{
while (!infile.eof())
{
infile.getline(readLine,sizeof(readLine)); // read a line from file
student.insert(readLine);
}
}
else
{
cout << "Can't open file!" << endl;
}
}


asked 27 secs ago






Aucun commentaire:

Enregistrer un commentaire