Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
quas4
Založen: 18. 10. 2007 Příspěvky: 199
|
|
Návrat nahoru |
|
|
Al
Založen: 23. 10. 2007 Příspěvky: 196
|
Zaslal: 9. květen 2010, 14:01:20 Předmět: |
|
|
frca napsal: |
Možnost na "všechno" volat delete[], ale jak říkám, v dobře napsaném programu je to k ničemu.
PS: Když tak nad tím přemýšlím, tak s ukazatelem na pole alokovaným pomocí new[] musí být nějak spojen počet prvků, aby bylo jasné, na kolik se jich má zavolat destruktor. Nevíte, jak to překladače řeší? |
No prekladac jsem neprohlizel, ale zdravy selsky rozum veli, ze tam proste pred tim pointrem, ktery vraci new[], jsou jeste nejake cca 4 bajty navic, kde je ulozen pocet prvku pole. Kdyz se pak vola delete[], prectou se ty 4 bajty pred tim pointrem a z toho se vi, kolik volat destruktoru. Samotna pamet je pochopitelne alokovana jako jediny blok v kuse, jinak by to nemohlo byt pole. |
|
Návrat nahoru |
|
|
pcmaster
Založen: 28. 07. 2007 Příspěvky: 1821
|
Zaslal: 9. květen 2010, 17:44:58 Předmět: |
|
|
Minule sme nad tym filozofovali s par C++ znamymi A dedukovali sme len presne to, co pise Al. Ze si runtime niekam "tajne" uklada aj pocet prvkov, akurat to nie je uzivatelovi pristupne, co je velka skoda (napriklad oproti Delphi a pod). _________________ Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est. |
|
Návrat nahoru |
|
|
frca
Založen: 28. 07. 2007 Příspěvky: 1552
|
Zaslal: 9. květen 2010, 17:53:59 Předmět: |
|
|
O 2 příspěvky výš to psal quas4. Je to přesně tak, jak píšete. Jeden ze způsobů je přesně takový, jak píše Al. Viz ty 2 odkazy, co poslal quas4. _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
|
|