В настоящее время я работаю над программой, которая добавляет заголовки фильмов в отсортированный связанный список, и я продолжаю работать с «Ошибка сегментации: 11», и я понятия не имею, откуда она берется. вот мой файл спецификации и код клиента.
#include <string>
#include <iostream>
#include "Movies.h"
using namespace std;
struct NodeList {
string movieName; //data
NodeList* next; //points to next item
};
Movies::Movies()
{
headOfList = NULL;
length = 0;
currentPos = NULL;
}
void Movies::insertMovie(string movieName)
{
NodeList* tempPtr = new NodeList;
tempPtr->movieName = movieName;
if(headOfList == NULL)
{
headOfList = tempPtr;
}
else {
currentPos = headOfList;
NodeList* trail = NULL;
while(currentPos != NULL)
{
if(currentPos->movieName >= tempPtr->movieName)
{
break;
}
else
{
trail = currentPos;
currentPos = currentPos->next;
}
if(currentPos == headOfList) {
tempPtr->next = headOfList;
headOfList = tempPtr;
}
else {
tempPtr->next = currentPos;
trail->next = tempPtr;
}
}
}
length++;
}
Movies::~Movies()
{
NodeList* temp;
while(headOfList != NULL)
{
temp = headOfList;
headOfList = headOfList->next;
delete currentPos;
}
}
и вот мой клиент
#include <iostream>
#include <string>
#include "Movies.h"
using namespace std;
int main()
{
Movies myMovieList;
myMovieList.insertMovie("Harry Potter");
myMovieList.printList();
return 0;
}
Я думаю, что моя проблема может быть связана с моим деструктором, но каждый раз, когда я пробую что-то другое, я получаю одну и ту же ошибку.