Mam problem z listą jednokierunkową - program się kompiluje bez błędów ale przy uruchomieniu error. Podejrzewam, że problem jest podczas dodawaniu elementu - po wykomentowaniu program się odpala. Jeśli ktoś mógłby poprawić błąd byłbym wdzięczny - jestem zielony w temacie.
#include <iostream>
using namespace std;
class TElement
{
private:
int FValue;
TElement *next;
public:
TElement();
~TElement();
Add(int val);
DeleteAt(int position);
};
TElement::TElement()
{
FValue = 0;
next = NULL;
}
TElement::~TElement()
{
TElement *pom;
pom = next;
while (pom!=NULL)
{
pom = pom -> next;
delete next;
next=pom;
}
}
TElement::Add(int val)
{
TElement *pom;
TElement *poprz;
pom = next;
poprz = NULL;
while (pom!=NULL)
{
poprz = pom;
pom = pom -> next;
}
pom = new TElement;
pom -> FValue = val;
if (next==NULL)
{
next = pom;
}
else
{
poprz -> next = pom;
}
}
TElement::DeleteAt(int position)
{
TElement *pom;
TElement *poprz;
pom = next;
poprz = NULL;
while((pom!=NULL) && (position>0))
{
poprz=pom;
pom=pom -> next;
position--;
}
if (pom!=NULL)
{
if (poprz!=NULL)
{
poprz = poprz -> next;
delete pom;
}
else
{
next = pom -> next;
}
}
}
main()
{
TElement *Head = new TElement;
Head -> Add(7);
Head -> Add(15);
Head -> Add(12);
Head -> DeleteAt(2);
delete Head;
return 0;
}
</cpp>