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>