Anonymní profil garamond – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil garamond – Programujte.comAnonymní profil garamond – Programujte.com

 

Příspěvky odeslané z IP adresy 131.117.208.–

garamond
Funkcionální programování › Binární strom
1. 3. 2014   #187784

Mám binární strom z této třídy:

class MorseNode
{
	public:
		MorseNode(char, MorseNode *,MorseNode *);
		~MorseNode();
	private:
		char znak;
		MorseNode* tecka;
		MorseNode* carka;
};

MorseNode::MorseNode(char znak,MorseNode *a,MorseNode *b)
{
	this->znak=znak;
	this->tecka=a;
	this->carka=b;
}

MorseNode::~MorseNode()
{
	if (this->tecka!=NULL)
	{
		cout << this->tecka->znak << endl;
		this->tecka->~MorseNode();
	}
	delete this->tecka;
	this->tecka=NULL;

	if (this->carka!=NULL)
	{
		cout << this->carka->znak << endl;
		this->carka->~MorseNode();
	}		
	delete this->carka;
	this->carka=NULL;
}

Chtěl jsem se zeptat, zda by mi někdo nezkontroloval, zda mám destruktor správně a zda opravdu všechny uzly smaže, když bude volán na kořen stromu? Děkuji za odpovědi.

garamond
C / C++ › ukazatele na pole charů
29. 11. 2013   #184568

#3 vitamin
Díky, takže když napíšu dejme tomu printf("%c",&string+1), znamená to, že funkci printf předávám jako parametr ukazatel na pole a ten inkrementuju. Velikost pole je 6*sizeof(char)=6, takže ta inkrementace je o tuto hodnotu. To znamená, že jestliže ukazatel na pole předtím ukazoval na první prvek, teďka ukazuje na 7. (což je mimo paměť), že?

garamond
C / C++ › ukazatele na pole charů
29. 11. 2013   #184566

#1 garamond
Možná jsem to pochopil.. Je to tak, že když &string je místo v paměti prvního prvku, tak &string+1 bude paměť o 6*sizeof(char) dál, protože 6 je velikost pole...?

garamond
C / C++ › ukazatele na pole charů
29. 11. 2013   #184564

Zdravím, mám následně deklarované pole charů:
char string[6]="abcde";

Chápu, že string je adresa na 'a', (string+1) adresa na 'b', ... Ale nechápu, proč &string+1 už není to samé. Jaký je mezi nimi rozdíl? Díky za odpovědi

kilroy
C / C++ › getwchar
18. 10. 2013   #182567

Právě, že kupodivu žádná chyba nenastane.. program jde zkompilovat přes "g++ -pedantic -Wall" bez errorů i warningů.. Jako, je mi jasné, že bych měl buďto použit "cin >> a" nebo změnit "char a" na "wchar_t a". Ale zajímá mě, z jakého kontrétního důvodu to takto je... Myslel jsem, že něco zůstává na vstupním bufferu, ale tímto nebude, protože i když je těch cinu za sebou třeba 20, stejně mě už program nenechá nic zadat.

 

 

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