Program padá při načtení dat do bin. stromu – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Program padá při načtení dat do bin. stromu – C / C++ – Fórum – Programujte.comProgram padá při načtení dat do bin. stromu – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
hajnis0
Newbie
10. 5. 2012   #1
-
0
-

Dobrý den,
Při tvorbě programu, který čte slova z textového souboru a vkládá je do binárního stromu jsem narazil na problém v podobě spadnutí programu při ukončení vkládání textu do jednotlivých uzlů stromu. Program se sice provede celý, ale zároveň vyhodí chybovou chlášku: Chyba Exxpression: Invalid null pointer . Tipuji si, že chyba by mohla být v konstruktoru nebo destruktoru třídy, ale vůbec nevím, jak to opravit. Program je na následující adrese: http://www.uloz.to/xA8ize7/alg-projekt-2-rar

Děkuji za rady a omlouvám se, pokud jsem něco špatně vysvětlil nebo upřesnil.

Nahlásit jako SPAM
IP: 2001:718:1001:6a2:dc40:26...–
hajnis0
Newbie
10. 5. 2012   #2
-
0
-

Chyba by mohla být také v destruktoru 

Uzel::~Uzel(){
delete Prava;
delete Leva;
}

Nahlásit jako SPAM
IP: 2001:718:1001:6a2:dc40:26...–
liborb
~ Redaktor
+18
Guru
10. 5. 2012   #3
-
+1
-
Zajímavé

No tam je také chyba, protože bys měl koukat na to, jestli pravá a/nebo levá existuje, takže něco takového: 

Uzel::~Uzel()
{
	if (Prava != NULL) {
		delete Prava;
		Prava = NULL;
	}

	if (Leva != NULL) {
		delete Leva;
		Leva = NULL;
	}
}

ale ten problém, který tam máš je z rodiny "jak si sám zavařit". Funkce MaskaTextu má podle tebe vracet string, ale na konci máš return 0, takže vrátíš dočasný objekt typu string, který je .... NULL a když se má smazat, tak to řve. Změň to na int nebo rovnou na void a return; a máš klid.

Nahlásit jako SPAM
IP: 78.80.52.–
Řešení
vitamin+8
Grafoman
10. 5. 2012   #4
-
+1
-
Zajímavé
Vyřešeno Nejlepší odpověď

#2 hajnis
 

string MaskaTextu(){
	//...
	return 0;	//<< tu je chyba :)
}

gcc mi vypisalo toto, podla toho hned zistis kde je chyba

terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_S_construct null not valid
Aborted

Jednoducho nemozes inicializovat string ako 0.

edit: tak liborb ma predbehol

inak, co tak pouzit std::map ? napr:

struct Val{
	double Pocet;
	double Entropie;
};
map<string, Val>

Dalej by bolo lepsie keby si pouzival miesto 

void funkcia ( string str);

radsej:

void funkcia (const string& str);

Nebudu sa zbitocne vytvarat kopie objektu string

Nahlásit jako SPAM
IP: 178.143.60.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
hajnis0
Newbie
10. 5. 2012   #5
-
0
-

Aha moc díky oboum, ještě se mám co učit, dělal jsem tento program na poslední chvíli přes noc a takovéto hloupé chyby stále čas od času přehlédnu.

Nahlásit jako SPAM
IP: 2001:718:1001:6a2:dc40:26...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 12 hostů

Podobná vlákna

Chyba pada program — založil Jan

Aliens Isolation padá při startu — založil Matěj Andrle

Môj .exe program padá — založil Nummi

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý