» »

[C++] Dvosmerni seznam (sesutje pri klicu destruktorja)

[C++] Dvosmerni seznam (sesutje pri klicu destruktorja)

Jochaan ::

Programiram nek dvosmerni povezan seznam, pa se mi vsakič ko je več ko 1 element noter v seznamu sesuje kadar se kliče destruktor
class dsseznam
{
private:
	struct element{
		int kljuc;
		T podatek;
		element* dnasl;
		element* lnasl;
	};

protected:
    element* zacetek;
	

public:
	dsseznam();
	dsseznam(const dsseznam&);
	~dsseznam();

	void vstavi(int ,const T&);
	void brisi(int);
	void izpis(bool) const;
	bool prazen() const;	
	void isci(const dsseznam&);
};

------------------------------------------------------ // tole pa je destruktor

dsseznam::~dsseznam()
{
    element* seznam2=zacetek;
	while (seznam2->dnasl!=seznam2)
    {
		seznam2=seznam2->dnasl;
		delete(zacetek);
		zacetek=seznam2;
	}
	zacetek = NULL;
}

////////////////////

Prosil bi za nasvete, če je kdo imel izkušnje s tem. Hvala

[edit: poskusi naslednjič bolje oblikovati naslov: PREBERI ME: označevanje topicov v oddelku programiranje - gundi]
Asus P6T V2 Deluxe, 850W, Intel i7 920 2,66Ghz
Corsair DDR3 2x 4 GB, WD 500GB SATA
Sapphire Radeon HD 5770 1 GB
  • spremenilo: CCfly ()

Person ::

Hm, ko ti prvi objekt pobrišeš, kaže zadnji objekt še vedno na tega ... in ko potem pride zanka do njega, se pač OS zbuni, ker ta memory ni več za brisat ... tako nekako.
Let's make something useful!

Person ::

Torej moraš dat pred delete something like:
zacetek->lnasl->dnasl = seznam2;


Najbrž bo tako celo delalo ... bi pa jaz drugače malo priredil ...
Let's make something useful!

Zgodovina sprememb…

  • spremenil: Person ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

program za delo s polinomi v C#

Oddelek: Programiranje
181790 (1028) majster123
»

[C++] Iskalno drevo implementacija

Oddelek: Programiranje
52151 (1709) eXoo
»

[c++]Seznam

Oddelek: Programiranje
142582 (2582) Gundolf
»

[C++] Linker error

Oddelek: Programiranje
51219 (1219) Quikee
»

[C++ naloga] seznam

Oddelek: Programiranje
81332 (1332) BigWhale

Več podobnih tem