Итак, я создаю программу с несколькими связанными списками, и при создании нового узла в связанном списке он имеет ошибку сегментации.
Вот пример того, как я определяю список и как я создаю узел
#include <iostream>
#include <string>
using namespace std;
class node_A
{
public:
string nameA;
unsigned int codeA;
node_A* nextA;
};
class list_A
{
private:
node_A* headA;
public:
list_A()
{
headA=NULL;
}
~list_A()
{
node_A *current, *nextA;
current=headA;
while(current!=NULL)
{
nextA=current->nextA;
delete current;
current=nextA;
}
}
unsigned int lastNodesCode()
{
node_A *current=headA;
if(headA==NULL)
{
return 0;
}
else
{
while(current!=NULL)
{
if(current->nextA==NULL)
{
return current->codeA;
}
else
{
current = current->nextA;
}
}
}
}
void newNodeA()
{
node_A *newNode=new node_A;
node_A *current;
string nameA;
newNode->codeA=lastNodesCode()+1;
cout<<"Name A: ";
getline(cin,nameA);
newNode->nameA = nameA;
newNode->nextA=NULL;
if(headA==NULL)
{
headA=newNode;
}
else
{
current=headA;
while(current->nextA!=NULL)
current=current->nextA;
current->nextA=newNode;
}
}
};
class node_B
{
public:
string nameB;
unsigned int codeB;
node_B* nextB;
};
class list_B
{
private:
node_B* headB;
public:
list_B()
{
headB=NULL;
}
~list_B()
{
node_B *current, *nextB;
current=headB;
while(current!=NULL)
{
nextB=current->nextB;
delete current;
current=nextB;
}
}
unsigned int lastNodesCodeB()
{
node_B *current=headB;
if(headB==NULL)
{
return 0;
}
else
{
while(current!=NULL)
{
if(current->nextB==NULL)
{
return current->codeB;
}
else
{
current = current->nextB;
}
}
}
}
void newNodeB()
{
node_B *newNode=new node_B;
node_B *current;
string nameB;
newNode->codeB=lastNodesCodeB()+1;
cout<<"Name B: ";
getline(cin,nameB);
newNode->nameB = nameB;
newNode->nextB=NULL;
if(headB==NULL)
{
headB=newNode;
}
else
{
current=headB;
while(current->nextB!=NULL)
current=current->nextB;
current->nextB=newNode;
}
}
};
int main()
{
list_A A;
list_B B;
A.newNodeA();
A.newNodeA();
B.newNodeB();
B.newNodeB();
}
В моем коде, когда я пытаюсь добавить новый узел в связанный список, это не первый случай, когда возникает ошибка сегментации. Но в этом примере этой проблемы нет, я не могу опубликовать здесь весь свой код, потому что он слишком большой, у меня есть 8 связанных списков